我有这段代码:
<html>
<head>
</head>
<body>
<input type="text" class="additionalName">
<span class="additionalNameError"></span>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$(function(){
$('.additionalName').on("keypress",function (f) {
if (!alphaOnly(f)) {
$(".additionalNameError").show().html(" You must use text only - see <a href='#name_rules'>name rules</a>").fadeOut("slow").delay(10000);
f.preventDefault();
return false;
//event.preventDefault();
//return false;
}
});
function alphaOnly(e) {
var inp = String.fromCharCode(e.keyCode);
if (/[a-zA-Z-']/.test(inp)) return true;
else return false;
};
});
</script>
</body>
</html>
该代码适用于Chrome,但不适用于Firefox。任何建议都非常感谢。我尝试在event
方法中添加preventDefault
变量,但似乎没有任何效果
答案 0 :(得分:0)
出于某种原因,当你使用keypress
时,firefox总是返回按下的键为0(意味着你的函数将始终触发)。如果您将其更改为在keyup
上触发,则可以正常使用。
答案 1 :(得分:0)
根据jQuery文档,建议将event.which
用于关键事件。
event.which属性规范化event.keyCode和event.charCode。建议观看event.which键盘输入键。