gpt4 book ai didi

javascript - 如何防止在输入字段中输入无效字符

转载 作者:可可西里 更新时间:2023-11-01 02:29:48 25 4
gpt4 key购买 nike

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"/>

最佳答案

为了防止它首先被设置,您可以在 keydown 事件处理程序上返回 false,从而防止事件进一步传播。

我使用 jQuery 编写了下面的示例,但您可以在传统绑定(bind)时使用相同的函数。

尽管在服务器端进行验证也很重要,但为了用户友好性,客户端验证也很重要。

$("input.number-only").bind({
keydown: function(e) {
if (e.shiftKey === true ) {
if (e.which == 9) {
return true;
}
return false;
}
if (e.which > 57) {
return false;
}
if (e.which==32) {
return false;
}
return true;
}
});

关于javascript - 如何防止在输入字段中输入无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8282266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com