inputタグのonclickでform.submit()を実行しているため、IEだけ二重にリクエストが送信される時の対処法

otaguro 7,305views 更新:2014年10月21日

<FORM name=readcsv action="" encType=multipart/form-data method=post> <INPUT name=secid type=hidden value=hoge> <INPUT name=send class=auiButtonAction onclick="import_csv();aimluck.io.setHiddenValue(this);" type=submit value=読み込む> </FORM> function import_csv(){ var importflag = 0; for(j=0; j<document.readcsv.importcsv.length; j++){ if(document.readcsv.importcsv[j].checked){ importflag = 1; document.readcsv.action = document.readcsv.importcsv[j].value; } } if(importflag == 0){ alert('$l10n.FILEIO_SELECT_TYPE_LOAD_CSV'); } document.readcsv.submit(); }

のように、inputタグのonclickでform.submit()を実行する場合、
IEではjavascriptのform.submit()によるリクエストと、inputタグ自体のsubmitによるリクエストが送信されてしまうことがあります。
inputタグ自体のsubmitによるリクエストを停止するには、次のようにreturn false;を追記します。

<INPUT name=send class=auiButtonAction onclick="import_csv();aimluck.io.setHiddenValue(this);return false;" type=submit value=読み込む> 

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません