行がキャッチされていない例外をスローする検証関数のフォームがありますが、実行を停止する代わりに、ブラウザがフォームを送信します
function validation(){
var value = document.forms["myform"]['badInput'].value;//this line throws an exception
return false;
}
<form name='myform' action ="" onsubmit="return validation()" method="POST">
<input name='myInput' value="testing" type="text"/>
<input value="submit" type="submit"/>
</form >
上記のコードは単純な例ですが、例外を生成する可能性のある計算または変換を行っている可能性があります。これを処理する 1 つの方法は、それを try catch で囲むことです。
function validation(){
var ret =true;
try{
var value = document.forms["myform"]['badInput'].value;
......//some condition to make ret=false
} catch(e){
ret = false
}
return ret;
}
しかし、私はこれを行うためのより良い方法を探していますか? ブラウザはデフォルトでこれを処理する必要があると思います.onsubmit関数が例外をスローした場合にブラウザがどのように動作するかについて、仕様のどこかに言及されていますか?
</p>