我有一项任务要禁用文本框粘贴。只有字母字符必须允许粘贴。 我的代码是
<b>Name</b>
<input type="text" id="name" onpaste="return false"/>
通过提供onpaste =“return false”,不会粘贴任何值。 我该如何解决这个问题?
答案 0 :(得分:7)
试试此代码
$(".alphabetOnly").bind('paste', function(e) {
var self = this;
setTimeout(function(e) {
var val = $(self).val();
if (val != '0') {
if (val.match(/^[0-9]+$/) != null) {
$(".alphabetOnly").val("");
}
$(this).val(val);
}
}, 0);
});
我已更新代码here
答案 1 :(得分:2)
之前犯过一些错误,这是有效的:
$('#name').bind('paste', function(){
var self = this;
setTimeout(function() {
if(!/^[a-zA-Z]+$/.test($(self).val()))
$(self).val('');
}, 0);
});
您必须从html中删除onpaste="return false"
!
可在此处找到一个工作示例:JS Fiddle
答案 2 :(得分:2)
此代码限制输入字段中除了数字之外的其他字符的粘贴。在将值粘贴到输入字段时,我使用正则表达式测试值,如果条件为真,则将设置该值,或者我正在清空输入值。在我的情况下,我必须限制除数字之外的其他字符,您可以根据您的要求更改正则表达式
$(".numbersOnly").bind('paste', function(e) {
var self = this;
setTimeout(function(e) {
var val = $(self).val();
if (val != '0') {
var regx = new RegExp(/^[0-9]+$/);
if (!regx.test(val)) {
$(".numbersOnly").val("");
}
$(this).val(val);
}
}, 0);
});
答案 3 :(得分:0)
调用onpaste值内的函数。然后,在该函数内部,清除非字母字符。
有关详细信息,请参阅this question。