我试图在获取需要选择的选项值后自动选择 select by jquery 中的选项。但它在 Chrome 中不起作用。它在 Firefox 和 IE 9 中工作。为什么会这样?函数 fill 是填充值的函数。 (函数res,仅重置函数fill填充的值,对于本题并不重要)
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 release note
关于jquery选项选择在chrome中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15195227/