47

一部のテキスト ボックス エントリに対して JavaScript ユーザー検証を実行したいと考えています。

私が抱えている問題は、フォームにサイト内の新しいページに移動するアクションがあり、onsubmit属性が JavaScript 関数を実行しないことです。

より良い解決策、または次のコードで機能する解決策はありますか:: JavaScript ファイルは正しく記述されており、アクションを に切り替えると機能しますcheckRegistration()

これは、アクションと JavaScript の両方を実行する際の問題にすぎません。

<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
    <!-- Textboxes are here -->
    <!-- And the submit button -->
</form>
4

3 に答える 3

71

onsubmitコールバックで false を返すことにより、送信手順を停止する必要があります。

<script>
    function checkRegistration(){
        if(!form_valid){
            alert('Given data is not correct');
            return false;
        }
        return true;
    }
</script>

<form onsubmit="return checkRegistration()"...

ここに、完全に機能する例があります。入力に ​​google を書き込んだ場合にのみフォームが送信されます。それ以外の場合はエラーが返されます。

<script>
    function checkRegistration(){
        var form_valid = (document.getElementById('some_input').value == 'google');
        if(!form_valid){
            alert('Given data is incorrect');
            return false;
        }
        return true;
    }
</script>

<form onsubmit="return checkRegistration()" method="get" action="http://google.com">
    Write google to go to google...<br/>
    <input type="text" id="some_input" value=""/>
    <input type="submit" value="google it"/>
</form>
于 2013-04-28T12:22:45.303 に答える
12

試す

onsubmit="return checkRegistration()"
于 2013-04-28T12:21:45.013 に答える