jquery选项选择不在chrome中工作 [英] jquery option select not working in chrome
问题描述
我试图在获取需要选择的选项值后,通过jquery自动选择选项。但它不适用于Chrome。它在Firefox和IE 9中工作。为什么如此?函数填充是填充值的那个。
(函数res,只重置函数fill填充的值,对于这个问题不重要)
$ $ p $ 函数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()设置的值
元素。
$ b
更改
$(#mymenu option [value = ''+ data +''])。attr('selected','selected');
至
$( #MyMenu菜单)VAL(数据)。
另一种解决方案是使用道具()。 attr()方法用于设置元素的属性值不设置属性。
$('#mymenu option [value =5]')。prop('selected',true)
您可以阅读更多关于 attr vs prop ,以及 jQuery 1.6发行说明
I'm trying to auto select the option in select by jquery after fetching the option value that needs to be selected. However it is not working in Chrome. Its working in firefox and IE 9. Why is it so ? function fill is the one that fills in the values. (function res, only resets the values filled by function fill and is not important for this question)
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);
}
You can use val() to set the value of a select
element.
Change
$("#mymenu option[value='"+data+"']").attr('selected', 'selected');
to
$("#mymenu").val(data);
Another solution is to use prop(). The attr() method is used to set the attribute value of the element not to set the property.
$('#mymenu option[value="5"]').prop('selected', true)
You can read more about attr vs prop, as well as the jQuery 1.6 release note
这篇关于jquery选项选择不在chrome中工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!