2011-11-28 27 views
1

我在contentplaceholder上從asp.net複選框和文本框控件。我想調用javascript函數來啓用文本框控件,具體取決於複選框的選中狀態。我已經寫了下面的JavaScript爲checkbox & textbox的這 -如何使用位於contentplaceholder中的asp.net複選框控件的javascript函數?

命名渲染到瀏覽器後分別ctl00$ContentPlaceHolder1$chkCall, ctl00$ContentPlaceHolder1$txtCall

function chkChanged() { 
      try { 

      var echk = document.getElementsByName('ctl00$ContentPlaceHolder1$chkCall'); 
      var etxt = document.getElementsByName('ctl00$ContentPlaceHolder1$txtCall'); 

      if (echk.Checked) { 

       etxt.Enabled = true; 
      } 
      else { 
       etxt.Enabled = false; 
       etxt.Text = ""; 
      } 
      return true; 
      } 
     catch (err) { 
      alert(err.Message); 
      return false; 
     } 
     } 

當我上面的腳本執行然後調用函數,但代碼是不工作的控制。它並沒有拋出任何異常。

上述腳本有什麼問題?

謝謝。

回答

2

改爲使用此腳本:

var echk = document.getElementById("<%= chkCall.ClientID %>"); 
var etxt = document.getElementById("<%= txtCall.ClientID %>"); 
3

getElementsByName返回元素的數組(複數)嘗試使用getElementById得到一個單一一個元素,它可能是你想要什麼,因爲你正在檢查是否echk.Checked ==真。在你的情況下,echk是一個數組,而不是複選框。

相關問題