多次更改<select>元素的选定值

时间:2015-10-15 12:04:52

标签: javascript jquery html

我可以设置所选值没问题 - Stack-Overflow上已经有很多关于该问题的答案。 我的问题是如何继续更改所选值? 我首先想到的是我只是删除&#34;选择&#34;属性关闭选项,然后设置目标选项&#34;选择&#34;属性重新开始。 它工作了!! ---一个循环。 您似乎只能更改所选的值&#39; x&#39;它只是卡在第一个选项之前的次数并且不响应更改。 &#13; &#13; $(&#39;#btn_25&#39;)。on(&#39;点击&#39;,功能(e){&#13;    $(&#39; #my_selector选项&#39;)。attr(&#39;选择&#39;,false);&#13;     $(&#39; #my_selector选项[value =&#39; + 25 +&#39;]&#39;)。attr(&#39; selected&#39;,true);&#13; });&#13; &#13; $(&#39;#btn_50&#39;)。on(&#39;点击&#39;,功能(e){&#13;    $(&#39; #my_selector选项&#39;)。attr(&#39;选择&#39;,false);&#13;     $(&#39; #my_selector选项[value =&#39; + 50 +&#39;]&#39;)。attr(&#39;选择&#39;,true);&#13; });&#13; &#13; $(&#39;#btn_100&#39;)。on(&#39;点击&#39;,功能(e){&#13;    $(&#39; #my_selector选项&#39;)。attr(&#39;选择&#39;,false);&#13;     $(&#39; #my_selector选项[value =&#39; + 100 +&#39;]&#39;)。attr(&#39; selected&#39;,true);&#13; });&#13; &lt; script src =&#34; https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt; / script&gt;&#13; &lt; select id =&#34; my_selector&#34;&gt;&#13;     &lt; option value =&#34; 25&#34;&gt; Twenty Five&lt; / option&gt;&#13;     &lt; option value =&#34; 50&#34;&gt; Fifty&lt; / option&gt;&#13;     &lt; option value =&#34; 100&#34;&gt; One Hundred&lt; / option&gt;&#13; &LT; /选择&GT;&#13; &#13; &lt; button id =&#34; btn_25&#34;&gt; 25&lt; / button&gt;&#13; &lt; button id =&#34; btn_50&#34;&gt; 50&lt; / button&gt;&#13; &lt; button id =&#34; btn_100&#34;&gt; 100&lt; / button&gt;&#13; &#13; &#13; 如果你从左到右依次点击两次按钮,你会发现自己陷入了25的价值。至少,我做到了。 我的问题是---这是我的代码问题吗?使用JQuery(我非常怀疑)?使用FireFox(版本41.0.1)? 如果问题出在我的代码中 - 需要更改哪些内容以允许连续设置select-element的值?

2 个答案:

答案 0 :(得分:5)

您应该使用.val()方法设置select值。您还应该使用公共类来绑定事件,需要设置的值可以存储在自定义data-*前缀属性中,可以使用.data()

获取

&#13;
&#13;
$(function() {
  $('.btn').on('click', function(e) {
    $('#my_selector').val($(this).data('value'));
  }); 
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="my_selector">
  <option value="25">Twenty Five</option>
  <option value="50">Fifty</option>
  <option value="100">One Hundred</option>
</select>

<button type="button" class="btn" data-value="25">25</button>
<button type="button" class="btn" data-value="50">50</button>
<button type="button" class="btn" data-value="100">100</button>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

请改为尝试:

$('#btn_25').on('click', function(e) {
    $('#my_selector').val('25');
});

$('#btn_50').on('click', function(e) {
   $('#my_selector').val('50');
});

$('#btn_100').on('click', function(e) {
   $('#my_selector').val('100');
});

以下是一个工作示例:http://jsfiddle.net/92euh88o/