如果未选中复选框,则使用JavaScript禁用键盘,如果选中复选框,则仅启用数字。
我的代码是。
<script type="text/javascript">
function isNumberKey(evt)
{
if(document.getElementById("check1").checked=false)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
else
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 1 && charCode < 127)
return false;
return true;
}
}
</script>
HTML代码
<asp:CheckBox ID="check1" runat="server"/>
<asp:TextBox ID="tbxt1" runat="server" MaxLength="6" Width="200" onkeypress="return isNumberKey(event);" TextMode="Password" autocomplete="off" />
默认情况下,未选中复选框,因此JavaScript不允许我使用键盘。这可以。当我将复选框状态更改为选中并尝试按下某个键时。 OnKeyPress事件复选框状态将更改为未选中。我的代码有什么问题吗?
答案 0 :(得分:3)
您的代码中存在错误,您需要使用double equlas ==
来检查javascript中的相等性。
像这样:
if(document.getElementById("check1").checked==false)
另外,如果你在一对大括号中没有包含所有条件内容,即使它只是一行,也可能会让其他人阅读你的代码非常困惑。
所以我稍微重构它就像这样(为了清楚起见,我没有真正改变任何东西):
<script type="text/javascript">
function isNumberKey(evt)
{
if(document.getElementById("check1").checked==false)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
{
return false;
}
else
{
return true;
}
}
else
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 1 && charCode < 127)
{
return false;
}
else
{
return true;
}
}
}
</script>