FireFoxのバグ?button.disable=trueで送信されない ― 2006年04月21日 23:57
Formの2重送信を避けるため、
<script>
<!---
function xSubmit(button) {
button.disabled = true;
document.Form.submit();
}
->
</script>
<form name="Form">
<button name="order2" type="button" onclick="xSubmit(this)">注文する</button>
<input type="hidden" name="order" value="order">
</form>
のようなスクリプトを使っています。
IE,OperaやMozilla(FireFoxの前身)では問題なく動作しました。
ところが、 FireFoxでこれを使うと submitされないんです!!
document.Form.submit();
button.disabled = true;
と順番を入れ替えてもだめ。
button.disabled = true;
document.Form.submit();
button.disabled = false;
は動きます。
FireFoxはsubmit()処理がスクリプトの後から実行され、
そのときに呼び出したFormのボタンの状態を見て処理をしているようです。
何でこんな仕様になっているの?
回避方法
<form name="ButtonForm">
<button name="order2" type="button" onclick="xSubmit(this)">注文する</button>
</form>
<form name="Form">
<input type="hidden" name="order" value="order">
</form>
こんな風にFormをJavaScript実行用と送信用と別のFormにすれば
動作します。
または、この例では全部のボタンを使用不可にしていますが、
document.Form.order2.disabled = ture;
のようにそのボタンだけdisabledにしても動作します。
<script>
<!---
function xSubmit(button) {
button.disabled = true;
document.Form.submit();
}
->
</script>
<form name="Form">
<button name="order2" type="button" onclick="xSubmit(this)">注文する</button>
<input type="hidden" name="order" value="order">
</form>
のようなスクリプトを使っています。
IE,OperaやMozilla(FireFoxの前身)では問題なく動作しました。
ところが、 FireFoxでこれを使うと submitされないんです!!
document.Form.submit();
button.disabled = true;
と順番を入れ替えてもだめ。
button.disabled = true;
document.Form.submit();
button.disabled = false;
は動きます。
FireFoxはsubmit()処理がスクリプトの後から実行され、
そのときに呼び出したFormのボタンの状態を見て処理をしているようです。
何でこんな仕様になっているの?
回避方法
<form name="ButtonForm">
<button name="order2" type="button" onclick="xSubmit(this)">注文する</button>
</form>
<form name="Form">
<input type="hidden" name="order" value="order">
</form>
こんな風にFormをJavaScript実行用と送信用と別のFormにすれば
動作します。
または、この例では全部のボタンを使用不可にしていますが、
document.Form.order2.disabled = ture;
のようにそのボタンだけdisabledにしても動作します。
コメント
_ 235VM ― 2006年04月26日 19:37
今後もためになる情報をお願いします。
_ fox ― 2006年05月30日 18:20
FireFoxじゃなくてFirefoxが正式。
(略称もFFじゃなくてFxが正式ですので)
(略称もFFじゃなくてFxが正式ですので)
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
トラックバック
このエントリのトラックバックURL: http://hirono.asablo.jp/blog/2006/04/21/336551/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。