これを正しく説明できることを願っています...
次の Web ページには、onSubmit ハンドラーを含むフォームが含まれています。onSubmit ハンドラは、常に返す関数です。false
つまり、フォームは送信されません。ただし、これは IE8 (およびおそらく他のバージョンの IE) でのみ機能します。
これを Firefox と Chrome で動作させるには、アラートを次のように変更する必要があります。
alert(foo["firstName"].value);
フォームは連想配列であるため、角括弧を使用することが正しいフォームである理由を理解しています。
- しかし、フォームが FF と Chrome で送信されるのはなぜ
form("firstName")
ですか (明らかに間違っています)。 - 私がキャッチできるエラーはありますか?(Firebug では明らかなことは何もわかりませんでした。)
true
が返されたときにのみフォームが送信されるようにする方法はありますか?
ありがとう
<html>
<head>
<script>
function alwaysReturnFalse() {
alert(foo("firstName").value);
return false;
}
</script>
</head>
<body>
<form name="foo" onSubmit="return alwaysReturnFalse();">
First name: <input name="firstName" type="text" value="Bob"/><br/>
Last name: <input name="lastName" type="text"/><br/>
<input type="submit" value="Submit"/>
</form>
This form has an onSubmit handler that always returns false - meaning the form should never submit.<br/>
It works in IE8 - e.g. the onSubmit handler executes an alert() and then returns false.<br/>
It fails in Firefox and Chrome - e.g. the form is submitted.
</body>
</html>