Javascript 防止不允许粘贴到文本输入中

Javascript 防止不允许粘贴到文本输入中,javascript,html,jquery,input,Javascript,Html,Jquery,Input,我试图阻止用户将不允许的文本粘贴到输入字段中。输入是随机生成的8位代码,包含字母和数字 但是我不希望用户粘贴任何包含其他字符的文本 我的输入字段: <input type='text' id='form-code-field' name='code' maxlength='8'> 注意: <input type='text' id='form-code-field' name='code' maxlength='8'> 我不是在寻找类似于readonly属性的东西

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

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

我的输入字段:

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

注意:

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

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

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

$(“#表单代码字段”)。在('input',function()上{
如果(!/^[a-z0-9]+$/i.test(this.value))this.value=$(this.data('oldValue')| |“”;
else$(this.data('oldValue',this.value));
});

对于HTML5浏览器,您也可以执行此操作,无需脚本:

<input type='text' name='code' maxlength='8' pattern="^[a-z0-9]+$" title="a-z0-9">

仅alphanum(最多8个):

任意字符(最多5个):

将其设置为只读怎么样?那么您的意思是这样的<代码>
很抱歉,这不是我要找的,我不想让用户粘贴任何东西,但他仍然需要在其中写一些东西,然后请更新您的问题。当输入文本处于焦点时,您还可以尝试
keycode
来限制
ctrl+v
。看起来问题太复杂了。为什么不直接说:“用户只能输入字母和数字”?谢谢您的回答!当我运行第一个代码时,我只能输入数字,但我也想输入字母。你能改变代码,使其按所说的那样工作吗?或者告诉我如何更改正则表达式:-)正则表达式可以是
/^[a-z0-9]+$/i
,或者使用
\w
获取所有有效的字母数字字符,例如允许
\u
执行您可以执行的操作,但它不会阻止任何操作。请再读一遍这个问题。这个安全吗?我的意思是,任何访问我的网站的人都可以“编辑”模式,这样它就可以再次接受特殊的命令,不是吗?它和任何其他客户端方法一样安全,因为任何用户都可以“复制表单”并将其发送到您的服务器,而无需任何jQuery、模式等,所以您需要再次检查,服务器端,为了100%确保输入是准确的。@skobaljic实际上添加了一个完全“要求”的更新。认为没有必要保留旧值,为此您可以使用。我宁愿保持简单。