在jQuery更改选定选项后,UI不会更改

时间:2014-06-03 22:34:47

标签: javascript jquery

我曾经能够通过$(“。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。

4 个答案:

答案 0 :(得分:3)

这有用吗?将someValue替换为您要切换到的值...

$('.test').find('option[value='+someValue+']').prop('selected',true).trigger('change');

答案 1 :(得分:1)

我之前误解了你的问题。是否要触发选择框以便更改的值反映在UI上?这可行:

 $(".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');