在IE8中禁用文本框已禁用

时间:2014-06-16 10:46:12

标签: html asp.net

我使用了一个简单的文本框,它在IE 8中无效。默认情况下,我的文本框被禁用,当我单击复选框时,它应该被启用。但我的文本框不仅被启用和禁用。

请参阅textbox属性以供参考:

<asp:TextBox ID="txtAmount" runat="server" class="txtfld-popup1" MaxLength="5"
  onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"
  Enabled="false"></asp:TextBox>

<asp:CheckBox ID="chkInvestmentLoan" runat="server" CssClass="check"
  OnChange="javascript:enableTextBox();" />

<script type="text/javascript">
  function enableTextBox() {
    if (document.getElementById("chkCropLoan").checked == true)
      document.getElementById("txtAmount").disabled = false;
</script>

2 个答案:

答案 0 :(得分:3)

  1. 您的函数缺少右括号}

    function enableTextBox() {
        if (document.getElementById("chkCropLoan").checked == true)
            document.getElementById("txtAmount").disabled = false;
    }
    
  2. ID与您的标记不同

    <asp:CheckBox ID="chkInvestmentLoan" />
    

    VS

    document.getElementById("chkCropLoan")
    

答案 1 :(得分:2)

我认为问题在于您错过了}来关闭javascript中的功能。

如果您使用F12打开浏览器的开发工具,那么这对您来说是显而易见的。 我个人建议在FireFox下运行FireBug


作为旁注,你应该注意ASP.NET ......

如果您通过ASP.NET禁用文本框(使用txtAmount.Enabled = false;),则文本框中的值将始终为回发后的原始值。是否在客户端上启用文本框并不重要,ASP.NET知道它是原始禁用的,因此它会禁用它。

为了恢复价值,我建议你还有一个<asp:HiddenField>控件,每次更改文本框时都会更新值。然后使用回发后隐藏字段的值。