我有3个选择。当first on first为2时,则禁用第三个选择。当第二个选择的值为3时,则禁用第三个选择。
这是jfiddle链接:http://jsfiddle.net/UEpQn/1/
我的问题:我想在一个jQuery函数中插入我的2个jQuery函数,这会对任何一个做出反应
$('.one').trigger('change');
或
$('.two').trigger('change');
我想这样做,因为当我设置第一个选择为2和第二个选择到三个第三个选择被禁用,但是当我改变第一个选择值时,第二个选择被启用(第二个选择是还是3)。这是因为使用了$(' .one')。触发器('更改')。
编辑:纠正错误的jsfiddle链接。
答案 0 :(得分:5)
难道你不能将整个事情减少到:
$('select').change(function (e) {
$('.three').prop('disabled', ($('.one').val() == '2' || $('.two').val() == '3'));
})
<强> jsFiddle example 强>
答案 1 :(得分:2)
您可以定义一个检查select
s(.one
和.two.
)并启用/禁用第三个select
的函数。然后将该函数与select
的'change'事件绑定。
像这样:
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 :(得分: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)