我曾经能够通过$(“。classname”)更改jQuery所选的选项.val(“0”)。 但是,即使我可以更改所选的选项,UI也不会立即反映所选的选项...我很困惑于错误。如果我只使用jQuery库(即仅包含此库),它可以工作。我的意思是我的项目还包括很多其他的javascript。如果他们受到影响,我不会。
例如,
alert($('.test').val()); //I get "1"
$('.test').val("0");
alert($('.test').val()); //I get "0"
在上面的例子中,看起来jQuery实际上改变了所选的选项,因为.val()返回“0”(即选择的选项)但是,UI仍显示“1”作为所选选项。我在互联网上尝试了另一种方式。但是,UI不会刷新所选选项。 是否有人有过相同的经历?
<select class="test" style="font-size:12px;">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
使用jquery-1.9.1.js。
答案 0 :(得分:3)
这有用吗?将someValue替换为您要切换到的值...
$('.test').find('option[value='+someValue+']').prop('selected',true).trigger('change');
答案 1 :(得分:1)
$(".test").val(1).trigger("select"); // Change and trigger to '1'
$(".test").val(0).trigger("select"); // Change and trigger to '0'
答案 2 :(得分:1)
您使用的是像jQuery UI或jQueryMobile这样的UI框架吗?因为当你只包含jQuery时它才有效,我绝对认为这个问题是由你所包含的其他一个javascript库引起的。
答案 3 :(得分:0)
不知怎的@jsmartfo的解决方案对我没用。可能的原因可能是更新版本的jquery UI,因为这是一个老问题。
但是,以下代码段对我有用。
$('#myElemendId').val(valueToSet).selectmenu('refresh');