javascript - 防止未经允许的粘贴到文本输入中

标签 javascript html jquery input

我试图阻止用户将不允许的文本粘贴到输入字段中。输入是随机生成的 8 位代码,包含字母和数字。

但我不希望用户粘贴任何包含其他字符的文本。

我的输入字段:

<input type='text' id='form-code-field' name='code' maxlength='8'>

注意:

我不是在寻找类似 readonly 属性的东西,因为用户仍然需要在字段中输入字母数字文本。

最佳答案

您可以在 input 事件上使用正则表达式来测试值输入:

$('#form-code-field').on('input', function(){
    if(!/^[a-z0-9]+$/i.test(this.value)) this.value = $(this).data('oldValue') || "";
    else $(this).data('oldValue', this.value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type='text' id='form-code-field' name='code' maxlength='8'>

关于javascript - 防止未经允许的粘贴到文本输入中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33731827/

相关文章:

javascript - 如何检测 CSS flex wrap 事件

html - 中心位置绝对元素在位置绝对父元素内,具有最大宽度

jquery - 双ajax函数?

jquery - 图像未在光滑轮播的中心对齐

javascript - jQuery:选择相邻的标签,除非用文本分隔

javascript - 从上下文迁移到 Redux

javascript - 具有常量 stroke-dasharray 对象的 SVG Arc Progress bar

javascript - 从 Javascript 对象中获取某些东西的方法更快

android - jQuery Mobile + PhoneGap - 侧面板不会在 $(document).height() 上拉伸(stretch);

javascript - Wordpress 响应式下拉菜单 - 第一次点击忽略链接并打开下拉菜单,第二次点击转到 url