复选框状态在按下键后改变
Checkbox status changing onkeypress
我使用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事件时,复选框状态变为未选中。我的代码有什么问题吗?
你的代码中有一个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>
相关文章:
- 表示改变状态的函数的Redux字
- 当道具函数改变状态时,我该如何使用redux
- ReactJS:如何在改变状态后立即更新组件
- 在不改变状态的情况下,根据减少器中的给定索引更改嵌套数组值
- React-道具改变时改变状态
- 在材质设计和angularjs中不动态改变状态的复选框
- React不会立即改变状态
- react.js在改变状态数组后不更新DOM
- 改变状态时URL不更新
- ui.路由器改变状态,但ui-view不显示任何东西
- 如何改变状态的所有复选框(在所有页面),当点击selectAll复选框[使用jQuery数据表]
- ui -路由器在使用$state.go()时不改变状态
- componentDidMount中的setState不会改变状态
- AJAX调用不工作在React一旦我改变状态
- 如何在angular js中应用加载器/旋转器来改变状态
- 背面的离子嵌套状态不会改变状态
- Vuex在分派动作时改变状态中的2个元素
- 不能用Cordova改变状态栏
- 为什么点击一个改变状态且与ajax调用无关的选项卡会创建ajax调用?
- CSS活动伪类改变状态吞噬onclick事件