我使用了一个简单的文本框,它在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>
答案 0 :(得分:3)
您的函数缺少右括号}
function enableTextBox() {
if (document.getElementById("chkCropLoan").checked == true)
document.getElementById("txtAmount").disabled = false;
}
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>
控件,每次更改文本框时都会更新值。然后使用回发后隐藏字段的值。