ASP(.NETでは無い)を使用したWeb画面開発において、

サブミットボタンの二重押下を避ける策を教えて下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/08/30 00:07:16
  • 終了:2006/09/06 00:10:08

回答(4件)

id:naguro No.1

naguro回答回数36ベストアンサー獲得回数12006/08/30 00:15:20

ポイント23pt

JavaScriptで実現するのはいかがですか?

http://www.ahref.org/hinagata/nidoosi.html

id:llusall No.2

llusall回答回数505ベストアンサー獲得回数612006/08/30 00:19:47

ポイント23pt

私は単純にフラグで制御しています。

参考になれば幸いです。


<FORM action="<%= Request.ServerVariables("SCRIPT_NAME") %>" id=FORM1 method=post name=FORM1 onsubmit="return InputChk();">

<INPUT type="text" name="user" >

・・・

</FORM>

<SCRIPT LANGUAGE="JavaScript">

<!--

var flgDup = false;     // 二重送信防止フラグ

function InputChk(){

    if(flgDup==true){   // 二重送信防止チェック

        return false;   // サブミットされない

    }

    flgDup = true;      // フラグをたてる

    var obj = document.FORM1.user;

    if(obj.value == ""){

        alert("ユーザ名を入力してください。");

        obj.focus();

        obj.select();

        flgDup = false; // フラグをもどす

        return false;   // サブミットされない

    }

    return true; // サブミットされる

}

//-->

</SCRIPT>

id:s0u No.3

s0u回答回数3ベストアンサー獲得回数02006/08/30 02:44:05

ポイント22pt

http://www.tohoho-web.com/js/form.htm

javascriptでクリック時にボタン無効にすれば良いのでは。

<body>

<form name="F" action="http://www.yahoo.co.jp">

<input name="S" type=submit value="submit"

onClick="document.F.S.disabled = true;

document.F.submit()"

/>

</form>

</body>

id:iketerummo No.4

iketerummo回答回数68ベストアンサー獲得回数42006/08/30 08:51:29

ポイント22pt

私もJavaScript(以下JSと略)案に賛成なのですが

JSはクライアント環境依存なので、サーバー側で処理したほうが間違いないと言えばそうかも知れませんね。

①受け渡しパラメータを使う

⇒リロードや再読み込みで2重登録が発生するので×

②セッションにフラグを持たす

Session("fummy_flg")

⇒頻繁な処理ではない、少人数向けサイトであれば現実的です。

③DBに主キーを持たす

重複判定処理をし、2回目は処理を迂回させる。

私のサイトはJS+③で制御をしています。

http://tryasp.winscom.co.jp/faq.asp#60

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません