防止在字段中输入无效字符:综合指南
P粉124890778
P粉124890778 2023-08-27 21:06:52
0
2
414

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,没有像这样的函数调用:


P粉124890778
P粉124890778

全部回复 (2)
P粉034571623

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


           sssccc
    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; } });
      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!