confirm()について

確認ウィンドウを表示後に「OKしたら実行、キャンセルしたら戻る」をやりたいときに、onclickで、submit()とconfirm()を指定した場合、うまくいかなかったのでメモ。

 

//動く
<input type="submit" value="削除" onclick="return confirm('削除します。よろしいですか?');" />

//動かない
<button type="button" value="削除" onclick="return confirm('削除します。よろしいですか?'); document.Form_name.submit();">削除</button>

//alert()なら動く
<a href="javascript:void(0);" onclick="alert('削除します'); document.Form_name.submit();" title="削除">削除</a>

 

onclick="return confirm('削除します。よろしいですか?'); document.Form_name.submit();"

 

とすれば、期待通りの動作をしそうなものだが、実際にはOKをクリックしてもキャンセルをクリックしても何も起きない。

 

confirm関数の条件をif文で適切にラップすることで解決できた。

onclick="if (confirm('削除します。よろしいですか?')) { document.forms['Form_name'].submit(); }"