web-dev-qa-db-ja.com

HTMLフォームアクションとonsubmitの問題

一部のテキストボックスエントリでjavascriptユーザー検証を実行したいのですが。

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

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

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

<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
    <!-- textboxes here -->
    <!-- and submit button -->
</form>
39
James Brown

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

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

UPDATE:

ここに完全に機能する例があります。入力に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>
53
s3m3n

試して

onsubmit="return checkRegistration()"
8
Arun P Johny

試してください:

onsubmit="checkRegistration(event.preventDefault())"
1
pointydynamo