2017-08-21 89 views
-1

我正在處理一個頁面,該頁面在選中複選框時僅接受來自兩個文本框之一的輸入。我試圖爲第一個文本框創建一個TextChanged事件來禁用第二個文本框,但它不起作用。這是我的代碼爲文本框,在此先感謝!如何接受來自兩個文本框之一的輸入

function initSurchargeFields() { 
    var $chk = $("#chkSurcharge"); 
    $chk.click(chkSurcharge_onclick); 

    var $txt = $("#txtSurcharge"); 
    var $txta = $("#txtSurcharge1"); 

    if (!$chk[0].checked) { 
    $txt[0].disabled = "disabled"; 
    $txta[0].disabled = "disabled"; 
    } 
} 

function chkSurcharge_onclick(event) { 
    var $txt = $get("txtSurcharge"); 
    var $txta = $get("txtSurcharge1"); 

    $txt.disabled = this.checked ? "" : "disabled"; 
    $txta.disabled = this.checked ? "" : "disabled"; 

    if (this.checked) { 
    txt.focus(); 
    } 
protected void txtSurcharge_TextChanged(object sender, EventArgs e) 
{ 
    txtSurcharge1.Enabled = false; 
} 
+0

'$ get(「txtSurcharge」);'這是什麼?另外,在處理對象屬性「checked」時,它的值應該是true或false。您正在更改對象的屬性,而不是標記屬性。此外,如果$ txt是一個jQuery對象'$ txt.disabled'將不會工作,因爲禁用不會暴露在jQuery對象上。你必須像在其他地方那樣做[0] .disabled,或者使用'prop('disabled',布爾值)' – Taplar

+0

看起來像javascript,txtSucharge_TextChanged方法是否會運行? –

+0

那麼我想要做的是,當我向txtSurcharge添加文本時,txtSurchage1被禁用,反之亦然。到目前爲止,這只是禁用並勾選複選框時啓用它們。我只需要程序在其中一個文本輸入時禁用相反的文本框。 –

回答

0

您正在使用jQuery這樣:

要檢查複選框被選中,你需要:

$("#chkSurcharge").is(":checked") 

要設置你需要的屬性值:

$("#txtSurcharge").prop("disabled",true); 
0

可以切換「d isabled「屬性使用jquery .prop。這是.attr對於可以用布爾值切換的屬性(如「禁用」)的替代方法。

此外,您需要正確設置onclick事件處理程序。我用jquery .on做了這個。

function initSurchargeFields() { 
    var $chk = $("#chkSurcharge"); 
    $chk.on('click', chkSurcharge_onclick); 

    var $txt = $("#txtSurcharge"); 
    var $txta = $("#txtSurcharge1"); 

    if (!$chk.is(':checked')) { 
     $txt.prop('disabled', true); 
     $txta.prop('disabled', true); 
    } 
} 
function chkSurcharge_onclick(event) { 

    var $txt = $("#txtSurcharge"); 
    var $txta = $("#txtSurcharge1"); 

    $txt.prop('disabled', !this.checked); 
    $txta.prop('disabled', !this.checked); 

    if (this.checked) { 
     $txt.focus(); 
    } 
} 

提示:確保您使用Chrome或IE開發人員工具在代碼中設置斷點並調試JavaScript。這就像在visual studio中調試c#一樣。

相關問題