javascript - 限制用户在动态生成的文本框中输入特定字符

标签 javascript jquery asp.net

我试图阻止用户在页面上的任何文本框中输入两个特定字符。我正在使用的代码不适用于动态附加的文本框。

DEMO

  window.onload = function () {
            $("input").keypress(function (e) {
                if (e.which === 44 || e.which === 124) {//preventing , and |
                    e.preventDefault();
                }
            });
}

由于我没有使用服务器控件,所以我无法使用 ajax 过滤器等。我想对此有一个简单的解决方案。不会引起代码中的任何冲突。谢谢。

最佳答案

尝试使用event-delegation在这种情况下,因为您需要为运行时附加的元素绑定(bind)事件。

 $(document).on('keypress',"input",function (e) {
       if (e.which === 44 || e.which === 124) {
            e.preventDefault();
       }
 });

旁注:我只是使用 document 来委派事件,但您可能应该使用与输入元素最接近的静态父元素,以获得性能提升向上。

关于javascript - 限制用户在动态生成的文本框中输入特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925831/

相关文章:

jquery - 监听从外部文件加载到 div 的元素上的事件

jquery - Laravel ajax 输出 json 错误消息

jquery - 使用 CSS 动画在点击事件上滑动菜单

c# - 根据键获取列表List<T>中的自定义对象T

c# - 在 asp.net 中将上传的文件转换为位图图像

javascript - 查找第n个图 block 的坐标

javascript - 使用 MutationObserver 检测输入值变化

asp.net - 无需刷新 token 即可获取 AdWords customerId

javascript - Extjs 不显示来自商店的数据

javascript - 将触摸菜单的 onclick 更改为 onload