プロが教える店舗&オフィスのセキュリティ対策術

submitボタンを押して、次の処理が重い為に再度ボタンが押されてしまい、処理が二重になっていまうので、下記のjavascriptでボタンを1度しか押せないようにしています、。

// submitボタン無効化処理
function DisableButton(b)
{
b.disabled = true;
b.value = '投稿中';
b.form.submit();
}

しかし、今度は1度しか押していないのに、最初の送信に連続して空白のデータが送信されてしまう場合があります。

javascript を消して手動で1度しかボタンを押さない時はそういった問題は起きません、ただし振出しに戻って手動で連続で押されてしまう可能性が出てきてしまいます。

以上から、上記のコードになにか不足している部分があるのではないかと考えているのですが、わかりません。

よろしくお願いいたします。

A 回答 (2件)

こんにちは。



試していないので実際にどう動くかわかりませんが
<input type="submit" value="送信" onclick="DisableButton(this);">
とか呼んでいますか?
そうするとDisableButtonの中でまたformをsubmitしている気がします。

<input type="button" value="送信" onclick="DisableButton(this);">
にしてあげれば解決するかもしれません。

*type="submit"にonclickでさらにsubmitしたことが無いのでどう動くかわかりませんが、
もしtype="submit"になっているならtype="button"にして試してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます!
<input type="button" value="送信" onclick="DisableButton(this);">
こちらでうまく動くようになりました!
本当に助かりました。

お礼日時:2013/05/03 09:27

HTMLの方はどうなってますか?

    • good
    • 0
この回答へのお礼

<form action="toukou.php#top" method="post">
<input name="toukou" type="submit" value="投稿する" onclick="DisableButton(this);" class="btn" />

こんな感じでした。
おかげ様で解決できました。
ご返答ありがとうございました。

お礼日時:2013/05/03 09:28

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