【问题标题】:Keypress working in chrome but not firefoxKeypress 在 chrome 中工作,但不是在 firefox 中工作
【发布时间】:2014-08-28 18:58:11
【问题描述】:

我试图阻止用户输入除数字以外的任何内容。它适用于 Chrome,但不适用于 Firefox。我经历了很多解决方案,但没有运气。我用过keydown、keypress、不同的事件等。请帮忙。如果它有帮助,这一切都在一个 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>

【问题讨论】:

  • 您尝试过使用 e.charCode 吗? e= evt.which||evt.charCode||evt.keyCode;

标签: javascript google-chrome firefox keypress


【解决方案1】:

我不明白这一行

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;
}

http://jsfiddle.net/bskqpgvy/2/

【讨论】:

  • 太好了,选择为有效答案并感谢 @Jason 的贡献。
【解决方案2】:

不确定是否包含部分脚本,但据我所知,上面提供的代码在任何浏览器中都不起作用。

http://jsfiddle.net/e5d8txa2/

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;
}

顺便说一句,如果该字段仅用于输入数字,则在现代浏览器中,您可以在输入字段中使用“数字”类型。这应该在尝试提交时向用户抛出一个可见的错误。当然,您还应该根据需要通过其他方式验证字段值。

【讨论】:

  • 感谢您的贡献
猜你喜欢
  • 2016-04-18
  • 2017-05-10
  • 2021-08-12
  • 2016-07-19
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多