1

5〜10分前にJSの学習を始めたばかりで、誰かから基本的な検証機能を作成するように言われましたが、期待どおりに機能していないようです. フィールドが空かどうかをチェックし、その部分が機能します。しかし、何かが含まれているかどうかを確認して、コードを実行し続けると、そうではありません。

私のフォーム:

echo '<form action="index.php?action=getHashedText" method="post"     name="formHash">
        <br/><textarea name="text" rows="4" cols="50" placeholder="Add your text/pharse/word which you want hashing here." autofocus></textarea><br/>
        <button type="button" name="button" onclick="return validate();">Hash</button>';

関数検証 ():

    <script>
    function validate() {
        with (window.document.formHash) {
            if (formHash.text.value === "") {
                    alert('Field is empty!');   
                    return false;
            } else {
                    return true;
            }    
        }  
    }
    </script>
4

1 に答える 1

4

問題は、フォームを送信しないボタンを使用していることです (js に関係なく)。この dom を変更します。

<button type="button" name="button" onclick="return validate();">Hash</button>

これに:フィドル

<input type="submit" name="button" value="Hash" onclick="return validate();" />

type="submit"または、<button>(HT @RocketHazmat): Fiddleに追加することもできます。

<button type="submit" name="button" onclick="return validate();">Hash</button>

または、デフォルトは(HT @FabrícioMatté)であるためtype、すべて一緒に削除することもできます: Fiddle<button>typesubmit

<button name="button" onclick="return validate();">Hash</button>

また、トピックから少し外れますが、javascript onclicks を要素に直接配置することを避ける習慣がつきます。代わりにリスナーを作成できます: addEventListener

于 2013-08-08T17:26:50.863 に答える