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