2013-03-27 52 views
6

我有一項任務來禁用粘貼文本框。只有字母字符必須允許粘貼。 我的代碼是如何啓用僅適用於字母字符的onpaste

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

通過給onpaste = 「返回FALSE」 沒有值粘貼。 我該如何解決這個問題?

+0

$('input')。bind('copy paste',function(e){e.preventDefault(); }); – Okky 2013-03-27 12:33:23

+0

這將禁用複製和粘貼 – Okky 2013-03-27 12:33:47

+0

這與[tag:jquery-validate]插件完全無關。已編輯的標籤。 – Sparky 2013-03-27 14:36:22

回答

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

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

+0

它不工作..有你的任何其他例子 – Niths 2013-03-27 12:39:31

+0

@Nithu嘿男人,我犯了一些錯誤。那些是固定的,並得到它的工作! – Rob 2013-03-27 14:00:42

+0

@Nithu它必須工作。請再試一次 – 2013-03-27 15:56:49

0

將您onpaste值的內部函數的調用。然後,在該函數內部,除去非字母字符。

有關更多詳細信息,請參見this question

+0

你能舉個例子嗎? – Niths 2013-03-27 12:42:44

+0

你將如何去除onpaste事件中的非字母字符。在輸入值改變之前,'paste'事件被觸發。你需要一個超時或其他的東西來修改輸入的值 – C5H8NNaO4 2013-03-27 13:45:57

+0

正確,超時被用在引用的「這個問題」鏈接中。 – WEFX 2013-03-27 19:53:33

2

此代碼限制除了在輸入數字的其它字符粘貼field.On值粘貼到輸入字段中,I」使用正則表達式測試值,如果條件爲真,值將被設置,否則我正在清空輸入值。在我的情況下,我不得不限制其他字符與數字分開,你可以改變正則表達式基於您的要求

$(".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); 
    }); 
+0

一個自我解釋的答案只是真棒。所以你可以請你解釋一下你的答案以及這個代碼的工作原理。 – 2018-01-12 05:05:57

+0

這段代碼限制了其他字符的粘貼,除了輸入字段中的數字。在將值粘貼到輸入字段時,我使用正則表達式測試值,如果條件爲真,值將被設置,否則我清空輸入值。在我的情況下,我不得不限制其他字符與數字分開,您可以根據您的要求更改正則表達式 – 2018-01-12 06:04:55

+0

太棒了!投了一個很好的解釋。 – 2018-01-12 06:10:55

相關問題