2

私は新人の定義であり、私は私が何をしているのか分かりません。フォームの「name」フィールドで検証を実行するには、javascriptを使用して関数を作成する必要があります。チェックは、何かが入力されているかどうか、または名前に数字が含まれているかどうかを確認します。これに加えて、onchangeイベントを使用する必要があります。検索してみたところ、回答が表示されました。回答にjqueryコードが含まれているのを確認しましたが、この質問では使用できません。何をすべきかわからないのですが、誰か助けてもらえますか?これがimが使用しているフォームです

     <form method="get">
        <label for="name">Name</label>
        <input type="text" id="name" placeholder="Name" onChange="" >
        <br>
        <label for="age">Age</label>
        <input type="age" id="age" placeholder="Age">
        <br>
        <label for="location">Location</label>
        <input type="location" id="location" placeholder="Location">
        <br>
        <button type="submit">Submit</button>
    </form>
4

1 に答える 1

1

以下は、入力パラメーターを受け取る JavaScript 関数です。正規表現を使用して、入力値に数字が含まれているかどうかを確認します。その場合、アラートを送信し、すべての数字文字を削除します (ここでも正規表現を使用します)。次に、入力値が空の文字列かどうかをチェックし、空の場合はアラートを送信します。

function checkName(input) {

    // Check if input contains a digit
    if (/\d/.test(input.value)) {
        alert('Name contains a number');

        // Remove all digit characters
        input.value = input.value.replace(/\d/gi, '');
    }

    // Check if input is empty
    if (input.value === '') {
        alert('Name is empty');
    }

    return true;
}​

入力の onChange プロパティに関数呼び出しを追加し、関数の変数参照用にこのオブジェクトを渡します。

    <input type="text" id="name" placeholder="Name" onChange="checkName(this)" >

これは、この動作を示すデモです:
http://jsfiddle.net/PMKsS/1/

注意すべき点。この関数は、名前の入力値が変更されたときにのみ呼び出されます。これは、onChange 呼び出しが行うことです。したがって、フォームの送信時に名前の入力が空であるかどうかはチェックされません。

また、これも読む価値があります: HTML で onClick() を使用するのはなぜ悪い習慣なのですか? . 属性ではなく JavaScript を介して JavaScript イベント リスナーを追加する方法と、他の方法ではうまくいかない理由について説明します。ただし、純粋な JavaScript でこれを行う方法は提供されていません。

于 2012-11-05T05:59:44.457 に答える