防止在字段中输入无效字符:综合指南
P粉124890778
P粉124890778 2023-08-27 21:06:52
[JavaScript讨论组]

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

全球化()运行body.onload

因此,典型的输入字段具有 HTML,没有像这样的函数调用:

<input id="AppFirstName" style="width: 150px;" type="text" maxlength="30" title="textonly"/>


P粉124890778
P粉124890778

全部回复(2)
P粉034571623

上面的代码确实说明了这一点——只允许数字。您可以通过添加异常来修改它,例如像这样的 BACKSPACE

    
        
P粉807471604

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

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

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

$("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;
    }
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号