アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のようなコーディングすると、IE6では2度POST?しているように見えます。Netscape7.1では、1度実行です。なぜ、IE6で2度実行?

<INPUT type="submit" value=" 登録 " onclick="submit();">

function submit() {
document.forms['sisaku'].test.value = "OK";
document.forms['sisaku'].submit();
}

A 回答 (4件)

ボタンのタイプをsubmitにすると、押した時点で送信、更にonclickでsubmit();を呼んでるので2度送信してるんじゃないでしょうか?



それと、function名のsubmitは良くないんじゃないでしょうか。もともと、submitというメソッドがあるので。

input type = "button" に変更して、function名を変えたらしっかり動くと思います。
    • good
    • 0
この回答へのお礼

これで、試したら正常に動きました。

お礼日時:2006/09/11 15:06

というかsubmitボタンのonclickでsubmitしてるのは


どうかと思いますが・・・
普通はformにonSubmitで追加作業をさせ
trueをreturnするとsubmitが実行されます。

<script language=javascript>
function submitFunc(f) {
f.test.value = "OK";
return true;
}
</script>
<form name="sisaku" action="hogehoge.cgi" method="post" onclick="return submitFunc(this);">
<input type="submit" value="登録">
<input type="hidden" name="test" value="">
</form>
    • good
    • 0

 その <INPUT> タグは、本来であれば onclick= がなくてもサブミットは行われるわけです。


 なんで、メソッド submit() を実行したあと、さらに本来のサブミットまで実行されてしまっているのです。
 多重ポストを防ぐには、onclick="submit(); return false;" に変更してください。

 これは……仕様ミス? もしかしたらマイクロソフトがわざとそうしてるのかも。
 分かりません。

 なお、独自のファンクションに submit() と名前をつけると、もしかしたら this.submit() とゴチャゴチャになるケースがあるかもしれません。
 そういうのを防ぐために、もうちょっとユニークな名前にした方がいいですよ。doSubmit() とか。
    • good
    • 0
この回答へのお礼

貴重な技術アドバイスありがとうございます。

お礼日時:2006/09/11 15:05

ページのどこかに、画像を貼っていませんか?


参考URL18,19,20Pを見てみてください。

参考URL:http://www.seshop.com/book/preview/200112/4-7981 …
    • good
    • 0
この回答へのお礼

返事が来ないと思ったら、メールオフで質問したようで、早速調べます。

お礼日時:2006/09/11 14:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!