フィールドへの無効な文字の入力を防ぐ: 包括的なガイド
<p><code>Onkeydown</code> で、次の JavaScript を実行します。</p>
<pre class="brush:php;toolbar:false;">function ThisOnKeyDown(el) {
if (el.title == 'textonly') {
!(/^[A-Za-zÑñ-s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ-s]/ig, '') : ヌル;
}
if (el.title == 'numbersonly') {
!(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null;
}
if (el.title == 'textandnumbers') {
!(/^[A-Za-zÑñ0-9-s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ0-9-s ]/ig, '') : null;
}
}</pre>
<p>これら 3 つのタイトル属性の 1 つが、ページ上の各入力フィールドに割り当てられます。このコードは無効な文字が正しく削除されている限り機能しますが、次の文字が入力されるまでは機能しません。無効な入力を単純に拒否する方法を見つけたいと考えています。ご協力いただきありがとうございます! </p>
<p><strong>編集</strong>: グローバルにイベントを作成しています。これが私がやったことです:</p>
<pre class="brush:php;toolbar:false;">function Globalization() {
var inputs = document.getElementsByTagName('input');
for (i = 0; i
全員に返信(2)返信します
P粉0345716232023-08-28 14:43:57
上のコードはこれを示しています - 数字のみが許可されています。この BACKSPACE
のような例外を追加することで変更できます。
リーリー
返事
0P粉8074716042023-08-28 10:06:49
そもそも設定されないようにするには、keydown イベント ハンドラーで false を返し、イベントがさらに伝播するのを防ぎます。
以下の例は jQuery を使用して作成しましたが、従来のバインディングでも同じ関数を使用できます。
サーバー側の検証も重要ですが、使いやすさを考えるとクライアント側の検証も重要です。
リーリー
返事
0 キャンセル返事