Onkeydown
,我运行以下JavaScript:
function ThisOnKeyDown(el) {
if (el.title == 'textonly') {
!(/^[A-Za-zÑñ-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ-\s]/ig, '') : null;
}
if (el.title == 'numbersonly') {
!(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null;
}
if (el.title == 'textandnumbers') {
!(/^[A-Za-zÑñ0-9-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ0-9-\s]/ig, '') : null;
}
}
这三个标题属性中的一个被赋予页面上的各种输入字段。只要正确地擦除无效字符,代码就可以工作,但要等到输入下一个字符。我想找到一种方法,首先简单地拒绝无效的输入。谢谢你的帮助!
编辑:全局创建事件。我是这么做的:
function Globalization() {
var inputs = document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
inputs[i].onfocus = createEventHandler(
ThisOnFocus, inputs[i]);
inputs[i].onblur = createEventHandler(
ThisOnBlur, inputs[i]);
inputs[i].onkeydown = createEventHandler(
ThisOnKeyDown, inputs[i]);
inputs[i].onkeyup = createEventHandler(
ThisOnKeyUp, inputs[i]);
}
}
Globalization()
运行body.onload
因此,一个典型的输入字段有HTML,没有像这样的函数调用:
<input id="AppFirstName" style="width: 150px;" type="text" maxlength="30" title="textonly"/>
9条答案
按热度按时间cuxqih211#
为了防止在第一时间设置它,您可以在keydown事件处理程序上返回false,从而防止事件进一步传播。
我使用jQuery编写了下面的示例,但您可以在传统绑定时使用相同的函数。
虽然在服务器端进行验证也很重要,但为了用户友好性,客户端验证也很重要。
vatpfxk52#
上面的代码是这样说的-只允许数字。您可以通过添加异常来修改它,例如像下面这样说:
vom3gejh3#
你可以很容易地在一个HTML行中做到这一点。
像这样不允许空格:
或者只允许数字:
只需查找您想要允许或不允许的任何数字的unicode。
fnx2tebb4#
您可以在“input”事件期间替换您的输入值:
来源:https://knplabs.com/en/blog/how2-tips-how-to-restrict-allowed-characters-inside-a-text-input-in-one-line-of-code
bq3bfh9z5#
然后添加key-filter类到你的输入,如果使用jquery或
只要把你想允许的字符放在^后面的[]里。这允许所有字母数字_ -和。
x9ybnkn66#
我发现这个解决方案在:http://help.dottoro.com/ljlkwans.php
按预期工作。
它允许文本和!“#$%&但您可以通过将这些添加到验证中来调整它,以便通过删除!在返回
b1uwtaje7#
代码对于防止用户键入除数字以外的任何其他字符非常有用。
zvokhttg8#
针对onkeyup事件而不是onkeydown事件运行代码。通过这种方式,您可以访问最后一次执行的结果,其中onkeyup事件在按下按键时执行,而不知道其结果。
pnwntuvh9#
这里有一个简单的方法。只允许数字