我有一个 JavaScript 函数无法工作,现在我在它下面添加了一个新函数。这是我的文档头部的内容。
<head>
<link rel="stylesheet" href="9j3nz/style.css" type="text/css">
<script src="jquery.js"></script>
<script src="processing.js"></script>
<script type="text/javascript">
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
<script type="text/javascript">
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text"))
$("label#enter_error").show();
{return false;}
}
document.onkeypress = stopRKey;
</script>
</head>
除了之前工作的 isnumberkey 函数之外,一切都工作正常。我的 HTML 没有任何变化。任何帮助表示赞赏。谢谢!
我按如下方式调用 isnumberkey 函数:
onkeypress="return isNumberKey(event)"
什么可能会阻止这个工作?自从我输入“停止回车键”功能后,它才开始起作用。
编辑:
删除停止输入键功能后,isnumberkey 事件再次起作用。我认为他们在某种程度上互相干扰。
最佳答案
似乎您的 stopRKey 总是返回 false,这可能会阻止您的 isNumberKey。
尝试重新排列你的括号。
if ((evt.keyCode == 13) && (node.type=="text"))
$("label#enter_error").show();
{return false;}
应该是
if ((evt.keyCode == 13) && (node.type=="text")) {
$("label#enter_error").show();
return false;
}
更新:有两种使用 if 语句的方法。
您可以通过单个操作调用 if
:例如。
if (true) alert('always true');
// or
if (true)
alert('always true');
或者您可以使用代码块调用 if
语句
if (true) {
alert('one alert');
alert('another alert');
}
由于您的括号无序,如果用户按下 Enter 键,您的代码只会执行 show()
,然后继续处理剩余的代码。所以 return false 总是被调用。
关于javascript - 为什么这个 Javascript 函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/719240/