我有一个顶级选择框,当用户在此处进行选择时,我希望此值用于与此顶级框相关的所有以下选择框。
我遇到的问题是,如果任何一个较低的选择框被禁用,我希望上面的过程忽略这个选择框,因为它已经被分配了一个值。
显然,如果启用了较低的选择框,那么我想为其指定最高选择值。
要根据特定值禁用选择列表,我使用了:
$("select[name=f03]").eq(index).attr('disabled', 'disabled');
以下是我使用过但不起作用的jQuery:
var top_select = $("select[name=f07]").val();
$("select[name=f03]").each(function(index){
if $("select[name=f03]").eq(index).is(':enabled'){
$("select[name=f03]").eq(index).val(top_select);
}
});
从这段代码开始,只有在启用时才会设置较低的选项([name = f03])。
答案 0 :(得分:1)
首先我会禁用这样的选择: $(“select [name = f03]”)。eq(index).prop('disabled',true);
其次,你的功能应该更简单:
$("select[name=f03]").each(function(){
if ($(this).prop('disabled')) return;
$(this).val(top_select);
});
答案 1 :(得分:1)
你应该使用jquery:enabled选择器,如下所示
$("select[name=f03]:enabled").each(function(){
//execution
});
或
$("select[name=f03]:enabled").val("value");
这里是jsfiddle示例http://jsfiddle.net/kso2oqr5/1/
答案 2 :(得分:0)
禁用元素时,请使用.prop(property,value)
var top_select = $("select[name=f07]").val();
$('select[name="f03"]').val(function(){
if(!this.disabled){
return top_select;
}
});