6

テキストボックスの貼り付けを無効にするタスクがあります。貼り付けを許可する必要があるのはアルファベット文字のみです。私のコードは

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

onpaste = "return false"を指定すると、値は貼り付けられません。どうすればこの問題を解決できますか?

4

4 に答える 4

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);
});

ここでコードを更新しました

于 2013-03-27T13:43:45.823 に答える
2

以前にいくつかの間違いを犯しました、これは機能しています:

$('#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

于 2013-03-27T12:34:26.470 に答える
2

このコードは、入力フィールドの数字以外の他の文字の貼り付けを制限します。入力フィールドに値を貼り付ける際に、正規表現を使用して値をテストしています。条件が真の場合、値が設定されます。そうでない場合は、i ' m入力値を空にします。私の場合、数字以外の他の文字を制限する必要がありました。要件に基づいて正規表現を変更できます。

$(".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);
    });
于 2018-01-12T04:52:24.930 に答える
0

onpaste値内の関数を呼び出します。次に、その関数の内部で、アルファベット以外の文字を削除します。

詳細については、この質問を参照してください。

于 2013-03-27T12:34:38.777 に答える