javascript - 如何让输入警报消息仅在输入字母而不是数字时起作用?不让任何文字提示

标签 javascript html input alert inline

如何让输入警告消息仅在输入字母而不是数字时起作用?不让任何文本提示。 在输入数字时不应有警报,但在输入字母时会收到警报。我也接受带有 JavaScript 标记的解决方案,但如果有内联解决方案,那是首选。

此功能的问题在于,如果您像我一样快速给小费,它会让您在框中键入文本。它应该不让任何文本提示

JavaScript:

<script language="JavaScript">
function checkInp()
{
    var x = document.forms["isnform04"]["areinp"].value;
    var regex = /^[0-9]+$/;
    if (!x.match(regex))
    {
        alert("no text here, input numbers only");
        return false;
    }
}
</script>

HTML:

<input type="text" name="areinp" size="30" value="" onChange="areCon()" onkeyup="return checkInp();">

没有查询解决方案。

更新:我也用过这个:

<input type="text" name="areinp" size="30" value="" onChange="areCon()" onkeyup="if (this.value=this.value.replace(/[^\d]/,'')) alert('no text here, input numbers only');">

最佳答案

如果要取消该事件,则需要使用preventDefault(),即不允许文本框接受非数字输入。这样您就不必为删除它而烦恼。但是,preventDefault() 不适用于 onkeyup。使用 onkeydown

JS:

function checkKey(e) 
{
    if (e.keyCode != 8 && // allow backspace
        e.keyCode != 46 && // allow delete
        e.keyCode != 37 && // allow left arrow
        e.keyCode != 39 && // allow right arrow
        (e.keyCode < 48 || e.keyCode > 57)) // allow numerics only
    {
        e.preventDefault();
    }
}

HTML:

<input type="text" onkeydown="checkKey(event)" />

注意 - 在每次按键按下/按下/向上时提醒用户是很糟糕的。简直烦人。避免!如上所示,默默地阻止不需要的键。

关于javascript - 如何让输入警报消息仅在输入字母而不是数字时起作用?不让任何文字提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43401238/

相关文章:

javascript - 如何使内部元素的滚动条在外部元素上可见?

javascript - AngularJS - ng-model 不随服务更新

javascript - JavaScript 中的计算字段不起作用

c++ - 如果用户输入多个整数,如何抛出错误

javascript - 如何将对象从 Objective C 传递到 javascript

javascript - 表单无效时禁用提交按钮

javascript - HTML5 EventSource 数据函数处理先前值,而不是当前值

html - 从 Firefox 中的输入类型 ="range"中删除焦点轮廓

javascript - js不改变变量的值

javascript - 一些输入的问题