テキストボックスの貼り付けを無効にするタスクがあります。貼り付けを許可する必要があるのはアルファベット文字のみです。私のコードは
<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
このコードは、入力フィールドの数字以外の他の文字の貼り付けを制限します。入力フィールドに値を貼り付ける際に、正規表現を使用して値をテストしています。条件が真の場合、値が設定されます。そうでない場合は、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);
});
onpaste値内の関数を呼び出します。次に、その関数の内部で、アルファベット以外の文字を削除します。
詳細については、この質問を参照してください。