Javascript 如果我键入一对中的另一个,则禁用反向输入

Javascript 如果我键入一对中的另一个,则禁用反向输入,javascript,jquery,disabled-input,prop,Javascript,Jquery,Disabled Input,Prop,如果我输入一对中的另一个输入字段,然后通过点击backspace删除输入,那么如何禁用一个输入字段?例如,如果输入字段中没有任何内容,则可重新启用第二个输入字段,反之亦然。到目前为止,我的代码如下,但不起作用 JavaScript: //disable the opposite input field var ATGvalue = $('input#atgOrderId').val(); var BQvalue = $('input#bqOrderId').val();

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

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:

bqOrderId
阿特戈德里德

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

$(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);

您的代码确实可以工作,但只能工作一次-为了让它不断更新,您首先将JS包装在事件处理程序函数中,并将其附加到输入元素:

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


我将其附加到
change
keyup
事件:
change
以处理编程(脚本化)更改,以及
keyup
以“即时”方式更新字段的状态-否则,它将等待用户从输入中移除焦点,以调用
更改
事件。

此操作有效,但它仅在第一次加载页面时运行。我需要它不断地观察这些值的长度。
function mutuallyExclusive( e ) { ... }
$( '#bqOrderId' ).on( 'change keyup', mutuallyExclusive );
$( '#atgOrderId' ).on( 'change keyup', mutuallyExclusive );