2013-05-31 21 views
2

我有3個選擇。當第一個值爲2時,第三個選擇被禁用。當第二選擇的值是3時,則第三選擇被禁用。如何設置2改變效果影響1選擇

這是jfiddle鏈接:http://jsfiddle.net/UEpQn/1/

我的問題:我想插入一個jQuery函數內部礦2個jQuery函數,這將在任

$('.one').trigger('change'); 

$('.two').trigger('change'); 
反應

我想這樣做,因爲當我設置第一個選擇兩個和第二個選擇三個三選擇被禁用,但後來當我改變值首先從2中選擇,啓用第三選擇(並且第二選擇仍然是3)。這是因爲使用了$('。one')。trigger('change')。

編輯:更正了糟糕的jsfiddle鏈接。

回答

5

你們能不能降低整個事情:

$('select').change(function (e) { 
    $('.three').prop('disabled', ($('.one').val() == '2' || $('.two').val() == '3')); 
}) 

jsFiddle example

2

可以定義檢查二者select S(.one.two.)和使能/禁止第三select的功能。然後,您將該函數與select的「更改」事件綁定。
事情是這樣的:

var selectsChanged = function (e) { 
    if (($('.one').val() == '2') || ($('.two').val() == '3')) { 
     $('.three').prop('disabled', true); 
    } else { 
     $('.three').prop('disabled', false); 
    } 
}; 

$(document).ready(function(e) { 
    //$('.one').change(selectsChanged); 
    //$('.two').change(selectsChanged); 
    $('.one, .two').change(selectsChanged); 
}); 
// Thx @ Bali Balo & Eran Medan for pointing out the shorter alternative 

還參見本short demo

+2

'$變化(selectsChanged);'較短( '一,。二。')。並且較少冗餘。 –

+1

我想你可以把它縮小到'$('。one,.two')。change(...)' –

+0

tnx很多,它很好用...... :) –

0
$('form').on({"change":function(event){ 
    if(($(this).is('.one') && $(this).val()==2) || 
    $(this).is('.two') && $(this).val()==3){ 
    $(this.form).find('.three').prop("disabled",true); 
    }else{ 
    $(this.form).find('.three').prop("disabled",false); 
    } 
}},'.one, .two',null)