我试图阻止用户输入任何数字。它适用于Chrome,但不适用于Firefox。我经历了很多解决方案,但没有运气。我用过keydown,按键,不同的活动等等。请帮忙。如果它有助于这一切都在aspx文件中。
onkeypress="return myFunction(event);"
<script type="text/javascript">
// Check if key press is a number
function myFunction(evt) {
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
alert("Enter Numbers Only");
return false;
}
return true;
}
</script>
答案 0 :(得分:5)
我不明白这一行
var e = event || evt; // for trans-browser compatibility
你在哪里举办活动?这在Firefox中引发了错误。
我修改了代码并使用Chrome和Firefox对其进行了测试。首先是带输入的HTML
<input onkeypress="return validate(event);" />
和功能
// Check if key press is a number
function validate(e)
{
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))
{
alert("Enter Numbers Only");
return false;
}
return true;
}
答案 1 :(得分:1)
不确定是否包含部分脚本,但从我看到的内容中提供的代码在任何浏览器中都不起作用。
window.addEventListener("keypress", function(evt) {
myFunction(evt);
});
// Check if key press is a number
function myFunction(evt) {
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
alert("Enter Numbers Only");
return false;
}
return true;
}
另外,如果仅为数字键入字段,则在现代浏览器中,您可以在输入字段中使用“数字”类型。这应该在尝试提交时向用户抛出可见错误。当然,您还应该根据需要以其他方式验证字段值。