前提・実現したいこと
ボタンが多重クリックされるのを防止したい。
現在submitボタンでDBデータの多重登録が発生している稼働中の画面の修正です。
cakePHPで作成されており、ViewでPOST submit後にController側で入力項目のエラーチェックが行われます。
View(テンプレート)のjavaScript で対応しようと考えていますが、うまくいきません。
html部分とjavascriptは同一ファイルに記載しています。
よろしくご教示ください。
発生している問題・エラーメッセージ
ボタンが disable=true にならない。 submit がエラーとなりDB登録ができない。
稼働中(修正前)のソースコード
<!-- onclickに該当するjavascriptはナシ --> <form name="form1" action="xxxxxx" method="post"> <input type="hidden" name="firstname" value="{$firstname}"><br /> <input type="submit" value="ボタン" /> </form>
試したこと
必要最小限の記載しかできないのですが、
<!-- パターン1 --><!-- パターン2 --><script type="text/javascript"> function disabled_function(btn){ btn.disabled = true; btn.form.submit(); } </script> <form name="form1" action="xxxxxx" method="post"> <input type="hidden" name="firstname" value="{$firstname}"><br /> <input type="submit" value="ボタン" onclick="disabled_function(this);" /> </form>
<script type="text/javascript"> function disabled_function(btn){ btn.disabled = true; var f = btn.forms["form1"]; f.method = "POST"; f.action = "/xxxxxx/"; f.submit(); return true; } </script> <form name="form1" action="/xxxxxx/" method="post"> <input type="hidden" name="firstname" value="{$firstname}"><br /> <input type="button" name="capture" value="ボタン" onclick="disabled_function(this);" /> </form>
補足情報(FW/ツールのバージョンなど)
cakePHP 2.x
自PCにてVagrant+VirtualBoxでCentOS6環境で実施
回答3件
あなたの回答
tips
プレビュー