0

如果第一个输入框不为空,我正在尝试使用 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属性。

4

2 回答 2

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/

于 2012-05-27T18:33:11.153 回答
1

keyup例如,我使用事件,您可以使用blurkeyup 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);
});

演示

于 2012-05-27T18:39:23.753 回答