Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改按键状态的复选框_Javascript - Fatal编程技术网

Javascript 更改按键状态的复选框

Javascript 更改按键状态的复选框,javascript,Javascript,如果复选框未选中,我将使用JavaScript禁用键盘,如果复选框已选中,则仅启用数字 我的密码是 <script type="text/javascript"> function isNumberKey(evt) { if(document.getElementById("check1").checked=false) { var charCode = (evt.which) ? evt.which : event.

如果复选框未选中,我将使用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>

函数isNumberKey(evt)
{
if(document.getElementById(“check1”).checked=false)
{
var charCode=(evt.which)?evt.which:event.keyCode
如果(字符码>31&(字符码<48 | |字符码>57))
返回false;
返回true;
}
其他的
{ 
var charCode=(evt.which)?evt.which:event.keyCode
if(字符码>1&&charCode<127)
返回false;
返回true;
}
}
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事件复选框状态更改为未选中。我的代码中有什么错误吗?

如果代码中有错误,则需要双Equalas
==
来检查javascript中的相等性

像这样:

if(document.getElementById(“check1”).checked==false)

此外,如果没有在一对大括号中包含所有条件内容,即使是单行代码,其他人阅读代码时也会感到非常困惑

因此,我会将它稍微重构成这样(为了清楚起见,我没有真正改变任何东西):


函数isNumberKey(evt)
{
if(document.getElementById(“check1”).checked==false)
{
var charCode=(evt.which)?evt.which:event.keyCode
如果(字符码>31&(字符码<48 | |字符码>57))
{
返回false;
}
其他的
{
返回true;
}
}
其他的
{ 
var charCode=(evt.which)?evt.which:event.keyCode
if(字符码>1&&charCode<127)
{
返回false;
}
其他的
{
返回true;
}
}
}

中。checked=false
您正在分配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>