jquery选项选择不在chrome中工作

我想在获取需要选择的选项值后,在jquery中选择自动选择选项。 但是它无法在Chrome中运行。 它在firefox和IE 9中工作。为什么会这样? 函数填充是填充值的函数。 (函数res,仅重置由函数填充填充的值,对此问题不重要)

function fill(thisValue) { $('#inputString').val(thisValue); $.post("get.php?op=category", {queryString: ""+thisValue+""}, function(data){ if(data.length >0) { $("#mymenu option[value='"+data+"']").attr('selected', 'selected'); $('#mymenu').attr("disabled","disabled"); } }); $.post("get.php?op=name", {queryString: ""+thisValue+""}, function(data){ if(data.length >0) { $('#nameString').val(data); $('#nameString').attr("disabled","disabled"); } }); $.post("get.php?op=author", {queryString: ""+thisValue+""}, function(data){ if(data.length >0) { $('#authorString').val(data); $('#authorString').attr("disabled","disabled"); } }); $.post("get.php?op=publisher", {queryString: ""+thisValue+""}, function(data){ if(data.length >0) { $('#publisherString').val(data); $('#publisherString').attr("disabled","disabled"); } }); setTimeout("$('#suggestions').hide();", 200); } function res(inputString) { $('#publisherString').attr("disabled", false); $('#publisherString').val(''); $('#nameString').attr("disabled",false); $('#nameString').val(''); $('#authorString').attr("disabled",false); $('#authorString').val(''); $('#mymenu').attr("disabled",false); $('#mymenu option').attr('selected', false); } 

您可以使用val()来设置select元素的值。

更改

 $("#mymenu option[value='"+data+"']").attr('selected', 'selected'); 

 $("#mymenu").val(data); 

演示小提琴

另一种解决方案是使用prop() 。 attr()方法用于设置元素的属性值,而不是设置属性。

 $('#mymenu option[value="5"]').prop('selected', true) 

您可以阅读有关attr vs prop以及jQuery 1.6发行说明的更多信息

演示小提琴

当您在下面的语句中使用拼写错误的数据时,看起来val不起作用。 我花了一段时间才注意到。

 $("#mymenu").val(data); 

这是我刚刚注意到的关于你在选项标签中设置的名称的内容。 我将以我的代码为例。 你看到下面的蓝色和黑色在哪里?

   

我们假设目前正在选择Blue。 如果你按下键盘上的字母’B’(区分大小写无关紧要),无论如何都不会改变。 即使您有一个应该设置值的onkeydown事件,这也是如此,例如:

 $(function () { // Set the value on key down $("select[id=stoneColor1]").on("keydown", function(e) { var key = String.fromCharCode(e.keyCode); for (var i=0; i 

回想一下,如果我有上述代码将不起作用

   

但是,当我拥有它时它会起作用

   

所以,这个故事的道德:似乎你还必须考虑你的选项名称中的第一个字母。