如何仅为字母字母启用onpaste

时间:2013-03-27 12:30:55

标签: javascript jquery html html5

我有一项任务要禁用文本框粘贴。只有字母字符必须允许粘贴。 我的代码是

<b>Name</b>
<input type="text" id="name" onpaste="return false"/>

通过提供onpaste =“return false”,不会粘贴任何值。 我该如何解决这个问题?

4 个答案:

答案 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