最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to trigger select option on button click? - Stack Overflow

programmeradmin0浏览0评论

I want some JavaScript which can trigger/open select option while someone click on button using below code for select option

<div class="period" title="Choose a number of nights">
<span class="label">Nights</span>
<span class="input">
<select rel="period" value="4">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select></span></div>

Using below code for button

<td class="total">
<a class="im-pricebutton has-hover" href="javascript://;" value="A 2 night booking condition applies to this period">
<span class="book im-pricebutton-label">Min 2 nights</span>
<span class="number im-pricebutton-amount">$0</span>
</a></td>

As of now I have setup condition of Minimum night select as a 3,5 and 10 it's very on products so when someone don't pass this night function it'll show above code to select minimum night but how to pass some custom JavaScript which can open up drop down automatically when they click on button.

I want some JavaScript which can trigger/open select option while someone click on button using below code for select option

<div class="period" title="Choose a number of nights">
<span class="label">Nights</span>
<span class="input">
<select rel="period" value="4">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select></span></div>

Using below code for button

<td class="total">
<a class="im-pricebutton has-hover" href="javascript://;" value="A 2 night booking condition applies to this period">
<span class="book im-pricebutton-label">Min 2 nights</span>
<span class="number im-pricebutton-amount">$0</span>
</a></td>

As of now I have setup condition of Minimum night select as a 3,5 and 10 it's very on products so when someone don't pass this night function it'll show above code to select minimum night but how to pass some custom JavaScript which can open up drop down automatically when they click on button.

Share Improve this question edited Nov 28, 2016 at 23:30 halfer 20.5k19 gold badges109 silver badges202 bronze badges asked Sep 28, 2016 at 2:15 Group Of OceninfoGroup Of Oceninfo 3582 gold badges3 silver badges19 bronze badges 7
  • use label for that, – mmativ Commented Sep 28, 2016 at 3:20
  • Did you really need 31 options in your sample html? – nnnnnn Commented Sep 28, 2016 at 3:32
  • @nnnnnn : updated :p – Group Of Oceninfo Commented Sep 28, 2016 at 3:42
  • To be clear, the select code will reside inside the <td class="total"> also? – nocturns2 Commented Sep 28, 2016 at 4:17
  • Then, if they click on the offer inside the <td>'s link, you want to replace the offer or include the select option below it? – nocturns2 Commented Sep 28, 2016 at 4:20
 |  Show 2 more ments

3 Answers 3

Reset to default 2

I have found the way how to switch the value using below code. So, when someone click on button it'll take minimum night value, in this case it's 2. So, it's supplying value dynamically.

$('.period select').val(2).trigger('change');

Thanks for your suggestion and help.

Try to put ID on your select. select id="selectbox" and add this script.

Working fiddle: http://jsfiddle/X2rAZ/4/

var button = document.querySelector('.im-pricebutton'),
    sel = document.getElementById('selectbox');

button.onclick = function(){
    open(sel);
}

function open(elem) {
    if (document.createEvent) {
        var e = document.createEvent("MouseEvents");
        e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        elem[0].dispatchEvent(e);
    } else if (element.fireEvent) {
        elem[0].fireEvent("onmousedown");
    }
}
<div class="period" title="Choose a number of nights">
<span class="label">Nights</span>
<span class="input">
<select rel="period" select id="selectbox">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select></span></div>
<br/><br/>
<br/><br/>
<br/><br/>
<td class="total">
<a class="im-pricebutton has-hover" href="javascript://;" value="A 2 night booking condition applies to this period">
<span class="book im-pricebutton-label">Min 2 nights</span>
<span class="number im-pricebutton-amount">$0</span>
</a></td>

  • credits to EG.arteezy for open function.

Would something like this work for you? I don't know what the rest of your code looks like, so I made up my own sample. I've added a snippet below.

        $(document).ready(function () {
            $('.total').click(function () {
                $('.period').css("display", "inline-block").slideDown();
            })
        });
        td{
            padding: 10px;
        }
        .period {
            display: none;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
        }
<script src="https://ajax.googleapis./ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<table>
    <tr>
        <td></td>

        <td class="total">
            <a class="im-pricebutton has-hover" href="javascript://;" value="A 2 night booking condition applies to this period">
                <span class="book im-pricebutton-label">Min 2 nights</span>
                <span class="number im-pricebutton-amount">$0</span>
            </a>
        </td>

        <td>
        </td>
    </tr>
</table>
<div class="period" title="Choose a number of nights">
    <span class="label">Nights</span>
    <span class="input">
        <select rel="period" value="4">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
        </select>
    </span>
</div>

发布评论

评论列表(0)

  1. 暂无评论