2014-09-04 2 views
0

У меня есть окно выбора верхнего уровня, которое, когда пользователь делает выбор здесь, я хочу, чтобы это значение использовалось для всех перечисленных ниже полей, относящихся к этой вершине .Как установить значение окна выбора, если оно включено Только

Проблема, с которой я столкнулась, заключается в том, что если какой-либо из нижних полей выбора отключен, я хочу, чтобы вышеупомянутый процесс игнорировал это поле выбора, поскольку ему уже присвоено значение.

Очевидно, что если нижний блок выбора включен, то я хочу присвоить ему верхнее значение выбора.

FYI, чтобы отключить список выбора, основываясь на определенном значении, я использовал:

$("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); 
    } 
}); 

Из этого кода, это нижний selects ([name = f03]), который я пытаюсь установить, только когда он включен.

Любая помощь будет оценена по достоинству.

Спасибо.

+0

вместо использования 'index' и' .eq() 'use' $ (this) .is (': enabled') 'и' $ (this) .val (top_select); 'также использовать' .prop ('disabled ', true) 'когда вы отключите элементы, а не' .attr() ' – Anton

ответ

1

Сначала я хотел бы отключить выбрать так: $ ("выберите [имя = f03]") эк (индекс) .prop. ('disabled', true);

Во-вторых, ваша функция должна быть намного проще:

$("select[name=f03]").each(function(){ 
    if ($(this).prop('disabled')) return; 
    $(this).val(top_select); 
}); 
0

Когда вы отключаете элементы используют .prop(property,value)

var top_select = $("select[name=f07]").val(); 
$('select[name="f03"]').val(function(){ 
    if(!this.disabled){ 
    return top_select; 
    } 
}); 

DEMO

1

вы должны использовать JQuery: включен селектор, как следовать

$("select[name=f03]:enabled").each(function(){ 
    //execution 
}); 

или

$("select[name=f03]:enabled").val("value"); 

здесь является jsfiddle пример http://jsfiddle.net/kso2oqr5/1/