jquery选项选择在chrome中不起作用

标签 jquery google-chrome select

我试图在获取需要选择的选项值后自动选择 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);

Demo Fiddle

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

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

您可以阅读有关 attr vs prop 的更多信息,以及jQuery 1.6 release note

Demo Fiddle

关于jquery选项选择在chrome中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15195227/

相关文章:

google-chrome - 在 Chrome 中通过链接突出显示文本

html - 输入内的影子根 div

mysql - 使用 GROUP BY 从表中选择 MAX()

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

Javascript 在标签上添加 css 类

google-chrome - Chrome DevTools - 时间选项卡中的 'Queueing' 是什么意思?

jquery - 使用 jeditable 选择宽度

javascript - 使用 HTML 或 JS/jQuery 时光标移动失真

javascript - 添加表格和行作为 html 元素时,jQuery 会忽略内容

javascript - 选择2 : add option from the search field