最大長が10の入力テキストフィールドがあります。このフィールドはオーストラリアの電話番号(10桁)用です。電話番号は通常、次の構文に分割されます
12 12345678
誰かが上記をコピーして私の入力フィールドに貼り付けると、明らかに最後の桁が省略され、スペースが保持されます。
入力ボックスに貼り付ける直前にスペースを削除する方法はありますか?または、別の回避策はありますか?
前もって感謝します。
最大長が10の入力テキストフィールドがあります。このフィールドはオーストラリアの電話番号(10桁)用です。電話番号は通常、次の構文に分割されます
12 12345678
誰かが上記をコピーして私の入力フィールドに貼り付けると、明らかに最後の桁が省略され、スペースが保持されます。
入力ボックスに貼り付ける直前にスペースを削除する方法はありますか?または、別の回避策はありますか?
前もって感謝します。
これはあなたのために働くはずです:
HTML
<input type="text" id="phone" maxlength="10" />
JavaScript
var phone = document.getElementById('phone'),
cleanPhoneNumber;
cleanPhoneNumber= function(e)
{
e.preventDefault();
var pastedText = '';
if (e.clipboardData && e.clipboardData.getData)
{// Standards Compliant FIRST!
pastedText = e.clipboardData.getData('text/plain');
}
else if (window.clipboardData && window.clipboardData.getData)
{// IE
pastedText = window.clipboardData.getData('Text');
}
this.value = pastedText.replace(/\D/g, '');
};
phone.onpaste = cleanPhoneNumber;
フィドル: http: //jsfiddle.net/y6TYp/6/
更新nnnnnnは、オーストラリアの電話番号に関して素晴らしいポイントを持っていました。更新は正規表現を置き換えます。
この関数はそれを行うのに役立ちます:
function removeSpaces(string) {
return string.split(' ').join('');
}
または、jQueryを使用して、ここで説明する方法を使用できます 。jqueryでコピーして貼り付けるときにテキストボックスの空白を削除する
あなたが説明したタスクに近づくと、JavaScriptの有無にかかわらず、コードがさまざまなブラウザーで機能することを確認したいので、次のようにします。
maxlengthを11に設定します-maxlengthはHTML属性であり、javascriptの有無にかかわらず、ユーザーが入力したデータが失われないようにする必要があります。ユーザーが11桁を入力し、JavaScriptがない場合は、データをキャプチャしてサーバー側からクレンジングする必要があります。ええと、サーバー側の検証は必須です。
javascriptが存在する場合は、jquery関数を使用して最大長を設定し、スペースが削除されていることを確認します。したがって、ID ='title'のフィールドがあるとします。ドキュメントの準備ができたら、次のコードを記述します。
$('input#title')。attr('maxLength'、 '10')。keypress(limitMe);
function limitMe(e) {
if (e.keyCode == 32) { return true; }
return this.value.length < $(this).attr("maxLength");
}
明らかに、多数のフィールドがある場合は、すべての入力フィールドを同じクラス属性で装飾してから、次のようにすべてのフィールドに適用します。
$('input.limited').attr('maxLength','10').keypress(limitMe);
アルファベット文字、アラビア文字、大文字、数字などを置き換えたい場合は、次のon paste
関数を使用できます。
cleanPermalink= function(e) {
e.preventDefault();
var pastedText = '';
if (window.clipboardData && window.clipboardData.getData) { // IE
pastedText = window.clipboardData.getData('Text');
} else if (e.clipboardData && e.clipboardData.getData) {
pastedText = e.clipboardData.getData('text/plain');
}
// This can replace English, Arabic, and Numbers spaces with (-)
this.value = pastedText.replace(/[^a-zA-Z-ۿ0-9-]+/g,'-');
// In case you want both Lowercase and Replace spaces use:
// this.value = pastedText.toLowerCase().replace(/[^a-zA-Z-ۿ0-9-]+/g,'-');
};
permalink.onpaste = cleanPermalink;
それが誰かを助けることができることを願っています。
ありがとうございました