2013-10-23 16 views
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" /> 

回答

0

您的代碼的工作,但只有一次 - 有它不斷更新,你先換的JS在事件處理函數,並將其連接到您的輸入元素:

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

參見this JSFiddle

我重視它的changekeyup事件都:change處理程序上的(腳本)的變化,並keyup爲「即時」更新域狀態 - 否則它將等待,直到用戶從輸入刪除焦點調用change事件。

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); 
+0

這可以工作,但它只能在頁面的第一次加載時運行。我需要它不斷觀察這些值的長度。 –

相關問題