1

contentplaceholder に asp.net のチェックボックスとテキスト ボックス コントロールがあります。チェックボックスのチェック状態に応じてテキストボックスコントロールを有効にするJavaScript関数を呼び出したいです。私はこれのために次のjavascriptを書きました-

checkbox & textboxブラウザにレンダリングした後のそれぞれの名前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;
       }
       }

上記のスクリプトを実行すると、関数が呼び出されますが、コードはコントロールに対して機能しません。そして、例外をスローしていません。

上記のスクリプトで何が問題になっていますか?

ありがとう。

4

2 に答える 2

3

getElementsByName要素の配列を返します (複数) を使用して、単一の 1 つの要素を取得します。これは、 == truegetElementByIdかどうかをチェックしているため、おそらく必要なものです。echk.Checkedあなたの場合、 echk はチェックボックスではなく配列です。

于 2011-11-28T13:06:22.417 に答える
2

代わりに次のスクリプトを使用してください。

var echk = document.getElementById("<%= chkCall.ClientID %>");
var etxt = document.getElementById("<%= txtCall.ClientID %>");
于 2011-11-28T13:15:45.210 に答える