0

CheckBox に応じて asp.TextBox/Input を有効/無効にする必要があります。CheckBox.Checked = true の場合は、asp.TextBox/Input を有効にする必要があります。CheckBox.Checked = false の場合は、asp.TextBox/Input を無効にする必要があります。

以下は私が持っているコードですが、最初のクリックでのみ機能します。つまり、ボックスをチェックするとasp.TextBox/Inputが有効になりますが、チェックを外してもasp.TextBox/Inputは無効になりません。

また、デフォルトでは、asp.TextBox/Input は Page_Load で無効になっています。

//If checked it should enable the input.
//If unchecked it should disable the input.
If Port is Required?<label class="checkbox">
                        <input type="checkbox" id="isportreqinput" name="isportreqinput" runat="server" onclick="fncport(this.form.isportreqinput, this.form.porttxt);"  />
                        <span class="metro-checkbox">Check Me</span>
                    </label>

//This is the input I need to disable/enable depending on the checkbox
<input type="text" name="porttxt" id="porttxt" runat="server" disabled="disabled" />

    <script type="text/javascript">
        function fncport(control, objname) {

            if (control.checked == true) {
                objname.disabled = false;
            }
            if (control.cheched == false) {
                objname.disabled = true
            }
        }
    </script>
4

2 に答える 2

1

this.form.isportreqinputHTML 内から isportreqinput チェックボックスへの参照を取得する有効な方法ではありません。 this実際にはチェックボックスへの参照です。

チェックボックスの ID と関数への入力を渡す必要がある場合は、それらをテキストとして渡して使用します。document.getElementById()

<label class="checkbox">
    <input type="checkbox" id="isportreqinput" name="isportreqinput" runat="server"    
        onclick="fncport('isportreqinput', 'porttxt');"  />
    <span class="metro-checkbox">Check Me</span>
</label>

<input type="text" name="porttxt" id="porttxt" runat="server" disabled="disabled" />

また、checked2 番目の if ステートメントのスペルが間違っています。if ステートメントも必要ありません。無効な値をチェックされた値の反対に設定するだけです。

    function fncport(controlid, objnameid) {
        var control = document.getElementById(controlid);
        var objname = document.getElementById(objnameid);

        objname.disabled = !control.checked;
    }
于 2013-03-17T21:23:51.463 に答える
0

コードを貼り付けたのかコピーしたのかわかりません。ただし、いくつかの構文の問題があります。

 if (control.cheched == false) {
            objname.disabled = true
 }

次のようにする必要があります。

 if (control.checked == false) {
            objname.disabled = true;
 }
于 2013-03-17T21:27:41.003 に答える