onClick=”submit()” + type=”submit” が重なると…
あんまりない状況だとは思うのだけど、フォームをsubmitするonClickイベントが重なった場合、ブラウザによって挙動が違ったのでメモ。
例えば下記のようなHTMLの場合
<form action="" name="form">
<div onclick="javascript:goSubmit()" style="background-color:#ffeeee;padding:30px;">
<input type="submit" />
</div>
</form>
<script>
function goSubmit(){
document.form.submit();
}
</script>
<div>自体にonClickを指定して、フォームをsubmitするようにしている。
この時、<input type=”submit” />をクリックすると、InternetExplorerの場合のみ、二重にsubmitされる。Firefox/ChromeなどはgoSubmit()を実行するだけ。
なので、こういった形式を使いたい場合は
<form action="" name="form">
<div onclick="javascript:goSubmit()" style="background-color:#ffeeee;padding:30px;">
<input type="button" />
<button></button>
<img />
</div>
</form>
<script>
function goSubmit(){
document.form.submit();
}
</script>
などのsubmitしないボタンに変えてやると良い。
ただし、この場合はJavaScriptがオフになっていると、うんともすんとも言わないので、そこら辺は配慮する必要がある。