如果未选中复选框,则使用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" />默认情况下,未选中as复选框,因此JavaScript不允许我使用键盘。这很好。当我将复选框状态更改为选中并尝试按某个键时。OnKeyPress事件复选框状态变为未选中。我的代码中有什么错误吗?
发布于 2011-10-17 14:57:13
你的代码中有一个bug,你需要双等式==来检查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>https://stackoverflow.com/questions/7790300
复制相似问题