我有一个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)"
可能会阻止这项工作?自从我输入Stop Enter Key功能后,它才开始起作用。
编辑:
删除Stop Enter键功能后,isnumberkey事件再次起作用。我认为他们正在互相干扰。
答案 0 :(得分:4)
好像你的stopRKey总是返回false,这可能会阻塞你的isNumberKey。
尝试重新安排你的parens。
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。
答案 1 :(得分:1)
如果您正在使用jQuery,则可以简化代码:
$(document).keydown(e) {
return e.keyCode == 31; // replace this with your logic
}