如果第一个输入框不为空,我正在尝试使用jQuery禁用下一个输入框:
<input name = "mrp" id="mrp" type = "text" />
<input name = "miw" class="mmw" type = "text" />
<input name = "maw" class="mmw" type = "text" />
JavaScript代码:
$(document).ready(function() {
$('#mrp').blur(function() { //i have even tried with live('change')
var mrp = $(this).val();
if(mrp != '' || mrp != ' '){
$('.mmw').attr("disabled", "disabled");
}
else if(mrp == '' || mrp == ' '){
$('.mmw').removeAttr("disabled");
}
else{
$('.mmw').removeAttr("disabled");
}
});
});
它可以很好地禁用下一个输入框,但是当我清除第一个文本框时,它不会删除disabled
属性。
答案 0 :(得分:3)
您必须检测何时填充第一个输入。
可以使用
完成$(window).ready(function() {
var handler = function() {
if ($('#mrp').val().trim()!='') $('.mmw').attr("disabled", "disabled");
else $('.mmw').removeAttr('disabled');
};
$('#mrp').keyup(handler).change(handler);
});
“失去焦点”检测通常很糟糕,因为您不希望在其他地方点击以查看其他输入更改。这就是我建议使用`keyup'的原因。
编辑:这是一个小提琴:http://jsfiddle.net/jxgTe/
答案 1 :(得分:1)
我使用keyup
事件,例如,您可以使用blur
或keyup blur
。
$('input[name=mrp]').keyup(function() {
if ($.trim(this.value).length) {
$(this).nextAll('input.mmw').prop('disabled', true);
} else $(this).nextAll('input.mmw').prop('disabled', false);
});
<强> DEMO 强>