0

如果我从一对中输入另一个输入字段,然后如果我通过点击退格键删除输入,那么如何禁用一个输入字段,例如,输入字段中没有任何内容重新启用第二个输入字段,反之亦然。我到目前为止的代码如下,但不起作用。

JavaScript:

    //disable the opposite input field
    var ATGvalue = $('input#atgOrderId').val();
    var BQvalue = $('input#bqOrderId').val();

    if ( ATGvalue.length > 0) {
        $('input#bqOrderId').prop("disabled", true);
    } else {
        $('input#bqOrderId').removeAttr("disabled");
    }

    if ( BQvalue.length > 0) {
        $('input#atgOrderId').prop("disabled", true);
    } else {
        $('input#atgOrderId').removeAttr("disabled");
    }

HTML:

<label for="bqOrderId">bqOrderId </label><input name="bqOrderId" id="bqOrderId" type="text" />
<label for="atgOrderId">atgOrderId </label><input name="atgOrderId" id="atgOrderId" type="text" />
4

2 回答 2

0

您需要将代码包含在事件中以检查用户何时键入以下内容:

$(document).on('keyup','#bqOrderId',function(){
   //your code
});

$(document).on('keyup','#atgOrderId',function(){
  //your code
});

在改变这个之后:

$('input#bqOrderId').prop("disabled", true);
$('input#atgOrderId').prop("disabled", true);

对此:

$('input#bqOrderId').attr("disabled",true);
$('input#atgOrderId').attr("disabled", true);
于 2013-10-23T09:06:55.610 回答
0

您的代码确实有效,但只有一次 - 要使其不断更新,您首先将 JS 包装在一个事件处理函数中并将其附加到您的输入元素:

function mutuallyExclusive( e ) { ... }
$( '#bqOrderId' ).on( 'change keyup', mutuallyExclusive );
$( '#atgOrderId' ).on( 'change keyup', mutuallyExclusive );

请参阅此 JSFiddle

我将它附加到changekeyup事件:change处理程序(脚本)更改,并keyup“立即”更新字段的状态 - 否则它会等到用户从输入中移除焦点以调用change事件。

于 2013-10-23T09:30:14.037 回答