0

こんにちは、次の Java スクリプト関数があります。

function EnableDisableTextBox(chkBoxId, txtBoxId) {
    var isChk = document.getElementById(chkBoxId);
    document.getElementById(txtBoxId).disabled = !(isChk.checked);
}

上記の関数を呼び出そうとすると、チェックボックスをクリックしても期待どおりに機能しません

<asp:CheckBox ID="chkBachelors"
      onclick="javascript:EnableDisableTextBox('chkBachelors','txtFirstDegree');"
      runat="server" Text='<%$Resources:Resource, FirstDegree %>' TextAlign="Left"/>

<asp:TextBox ID="txtFirstDegree" CssClass="form-text" runat="server" 
      MaxLength="250">&lt;/asp:TextBox>

chkBachelors期待される結果 (ユーザーがチェック ボックスをクリックしたとき):

if "chkBachelors" check box is checked 
    then enable "txtFirstDegree" text box
else 
    disable "txtFirstDegree" text box   

問題とその解決方法は何ですか?

4

2 に答える 2

1
    <asp:CheckBox ID="chkBachelors"
              onclick="EnableDisableTextBox(this);"
              runat="server" Text='' TextAlign="Left"/>

        <asp:TextBox ID="txtFirstDegree" CssClass="form-text" runat="server" 
              MaxLength="250"></asp:TextBox>


<script language ="javascript" type="text/javascript">
       function EnableDisableTextBox(checkbox)
       {
           var txtBoxId= "<%=txtFirstDegree.ClientID%>";
           document.getElementById(txtBoxId).disabled = !(checkbox.checked);
       }
</script>
于 2012-04-11T06:03:16.167 に答える
0

<%=chkBachelors.ClientID%> および <%=txtFirstDegree.ClientID%> は、Asp.Net コントロールのクライアント側 ID を提供します。明示的に渡す必要はありません。

function EnableDisableTextBox() {
            var isChk = document.getElementById(<%=chkBachelors.ClientID%> );
            document.getElementById(<%=txtFirstDegree.ClientID%>).disabled = !(isChk.checked);
        }
于 2012-04-11T05:56:56.963 に答える