- - PR -
ASP.NETでのダブルクリック制御
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-19 13:58
Jittaさん、こんにちは。
タイムスタンプ的には私がかぶせてしまったようで...。
あ、いや、他は未検証なので。明記すべきでしたね。 #「同一のショートカット〜」については他のブラウザでの挙動に興味はありますが。 | ||||||||
|
投稿日時: 2004-03-19 20:28
NAL-6295さん、Jittaさん、きくちゃんさん返答ありがとうございます。
確かにセッションは通信単位ですね。画面のデータをセッションで持ったりすることも ありますし・・あほな回答で申し訳ありませんでした。 それで、NAL-6295さんに情報をいただいたスレッドをみて簡単なサンプルで実験してみました。 たぶんコードは泳げないさんと同じものになるかと思います。 でも私の場合はボタンを押下するとエラーになってしまいます。 コードもボタンの名前以外はすべて同じです。 if (window.event.srcElement.id == "Button1") 上記のコードの部分で"オブジェクトがありません"というエラーが出ています。 上記のIDを持つボタンも存在するのに・・。 | ||||||||
|
投稿日時: 2004-03-19 21:11
単純に
Button1.Attributes["onClick"]="this.disabled=true"; は使用不可になるけど、ポストバックしないですね。何故だろう。 [ メッセージ編集済み 編集者: todo 編集日時 2004-03-19 21:30 ] submit前にsubmitボタンを使用不可にしたらsumbitが効かない。 [ メッセージ編集済み 編集者: todo 編集日時 2004-03-19 21:33 ] | ||||||||
|
投稿日時: 2004-03-20 14:33
todoさん返答ありがとうございます。
todoさんの引用---------------------------------------------- submit前にsubmitボタンを使用不可にしたらsumbitが効かない。 ----------------------------------------------------------- 本当です。私のほうでも実験しましたが 実行ボタンをsubmitするまえにdisabled=trueするとサーバー処理してくれません。 Submitボタン以外のボタンをdisabled=trueの対象にすればサーバー処理をしてくれるようです。 いろいろ調べてみてSessionなどのやり方も試してみたのですが ダブルクリックを完全に防げているという感じがしません。 出来ればクライアント側でdisabled=trueをかけてポストバックできれば良いのですが・・。 | ||||||||
|
投稿日時: 2004-03-20 15:59
出来ました!!
登録ボタンに重点を置くのではなく現在Windowの状況をみて、'complete'かそれ以外かで 判断することで1回目のボタン押下か2回目以降のかを判断することが出来ました。 下記がソースです。わかりやすいようにメッセージも付けました。 皆さん、ありがとうございました。 <SCRIPT language="JavaScript"> <!-- function send_check() { if(window.document.readyState != null && window.document.readyState != 'complete'){ alert("前回の処理中です。"); return false; }else{ var varRet = confirm('登録しますか?'); if(varRet == false){ return false; }else{ return true; } } } // --> </SCRIPT> |