一部のテキストボックスエントリでjavascriptユーザー検証を実行したいのですが。
私が抱えている問題は、フォームにサイト内の新しいページに移動するアクションがあり、onsubmit
属性がjavascript関数を実行しないことです。
より良い解決策、または次のコードで動作する解決策があります:注:javascriptファイルは正しく記述されており、アクションをcheckRegistration()
に切り替えると機能します。
これは、アクションとjavascriptの両方の実行に関する問題にすぎません。
<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
<!-- textboxes here -->
<!-- and submit button -->
</form>
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>
試して
onsubmit="return checkRegistration()"
試してください:
onsubmit="checkRegistration(event.preventDefault())"