我有一項任務來禁用粘貼文本框。只有字母字符必須允許粘貼。 我的代碼是如何啓用僅適用於字母字符的onpaste
<b>Name</b>
<input type="text" id="name" onpaste="return false"/>
通過給onpaste = 「返回FALSE」 沒有值粘貼。 我該如何解決這個問題?
我有一項任務來禁用粘貼文本框。只有字母字符必須允許粘貼。 我的代碼是如何啓用僅適用於字母字符的onpaste
<b>Name</b>
<input type="text" id="name" onpaste="return false"/>
通過給onpaste = 「返回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);
});
我已經更新了代碼here
之前犯了一些錯誤,這是工作:
$('#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
將您onpaste值的內部函數的調用。然後,在該函數內部,除去非字母字符。
有關更多詳細信息,請參見this question。
此代碼限制除了在輸入數字的其它字符粘貼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);
});
一個自我解釋的答案只是真棒。所以你可以請你解釋一下你的答案以及這個代碼的工作原理。 – 2018-01-12 05:05:57
這段代碼限制了其他字符的粘貼,除了輸入字段中的數字。在將值粘貼到輸入字段時,我使用正則表達式測試值,如果條件爲真,值將被設置,否則我清空輸入值。在我的情況下,我不得不限制其他字符與數字分開,您可以根據您的要求更改正則表達式 – 2018-01-12 06:04:55
太棒了!投了一個很好的解釋。 – 2018-01-12 06:10:55
$('input')。bind('copy paste',function(e){e.preventDefault(); }); – Okky 2013-03-27 12:33:23
這將禁用複製和粘貼 – Okky 2013-03-27 12:33:47
這與[tag:jquery-validate]插件完全無關。已編輯的標籤。 – Sparky 2013-03-27 14:36:22