検索

ホームページ  >  に質問  >  本文

フィールドへの無効な文字の入力を防ぐ: 包括的なガイド

<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
P粉124890778P粉124890778463日前519

全員に返信(2)返信します

  • P粉034571623

    P粉0345716232023-08-28 14:43:57

    上のコードはこれを示しています - 数字のみが許可されています。この BACKSPACE

    のような例外を追加することで変更できます。 リーリー

    返事
    0
  • P粉807471604

    P粉8074716042023-08-28 10:06:49

    そもそも設定されないようにするには、keydown イベント ハンドラーで false を返し、イベントがさらに伝播するのを防ぎます。

    以下の例は jQuery を使用して作成しましたが、従来のバインディングでも同じ関数を使用できます。

    サーバー側の検証も重要ですが、使いやすさを考えるとクライアント側の検証も重要です。

    リーリー

    返事
    0
  • キャンセル返事