• ベストアンサー

ボタンの二重押し防止について

xcodeでapplescriptを利用して書いているのですがボタンの二重押し防止について何かヒントを頂ければと思います on clicked theObject ←ボタン ○○○○(何秒間か時間を必要とするコードです) end clicked とします ○○○○のコードが走っている何秒間の時にクリックしてもボタンが反応しないようにしたいと思っています 何も対策をしないとコードの実行中にボタンを押すとコードが終了したら再度上記のコードが走ります (ボタンのenabledをfalseにしたりtransparentをtrueにしてもだめでコードが繰り返されました)

質問者が選んだベストアンサー

  • ベストアンサー
  • yukimican
  • ベストアンサー率70% (112/159)
回答No.1

現在処理中かどうかのフラグを立てて、 処理を行なう前にチェックするのはどうでしょうか? -- フラグの初期値は0 set flag to 0 on clicked theObject  -- フラグチェック。flag=1のときはスキップ  if flag is 0 then   -- 処理開始。フラグをセット   set flag to 1   ○○○○   -- 処理終了。フラグを戻す   set flag to 0  end if end clicked としておけば、flag=1の間は○○○○の処理が 行われないようになります。

plzanswer
質問者

お礼

参考になりました ありがとう御座います

plzanswer
質問者

補足

ありがとう御座います、早速行ってみました set flag to 0 on clicked theObject  if flag is 0 then   set flag to 1   ○○○○   set flag to 0  end if end clicked とするとthe variable flag is not defined とエラーがでましたので flag変数をglobalで宣言しまた、しかし結果は同じエラーでした 続いてporpertyを宣言して初期値に0を代入したところエラーは出ませんでしたが二重押し防止にはならず処理中にボタンを押すと処理が終了した直後に○○○○のコードを実行します 申し訳ありませんが申し越し教えて頂ければ幸いです

関連するQ&A

  • 【JavaScript】二重送信防止

    いつもお世話になっております。 前に二重送信防止の事でご質問させていただきましたが、 新たな問題が出てきましたので、再度質問させてください。 現在、JSPで検索画面を作成しています。 検索を実行する際、検索ボタン(リンク形式)にJavaScriptにて 二重送信防止のプログラムを組み込んでいるのですが、 おかしな動きをする時があります。 検索ボタン押下での二重送信防止プログラムを起動させた場合、 真っ白な画面に遷移し、画面左上に"false"と表示される。 プログラムが悪いのでしょうか? 二重送信防止部分のコードを下記しますので、わかる方がいらっしゃいましたら、 ご教授願います。 ちなみに、検索条件入力エリアでエンターを押しても検索が可能なのですが、 エンターで二重送信防止プログラムを起動させた場合は、正常に動作し、 検索結果も返ってきます。 ------------------------------------------------------- // テキストエリアでエンターを押した際に実行 function toEnter(){  toSearch(); } sendFlag = false; function toSearch(){  if( sendFlag ) {   alert( "送信済みです。" );   return false;  } else {   document.SearchForm.submit();   sendFlag = true;   return true;  } } … // 検索実行呼び出し <a href="JavaScript:toSearch();"><img src="Search.png" alt="検索"></a>

  • xcodeでapplescriptを使用してcocoaのコンポーネントにフォーカスの移動を制御する

    xcodeでapplescriptを使用してプログラミングをしています、その際、buttom1をクリックしてtextfield1からtextfield2へフォーカスを移動させる様なコードを書きたいと思っています。 on clicked theObject set focused of text field "tf" of window "wi" end clicked などではフォーカスを移動出来ません。 他の限度では「object名.setFocused」などでフォーカスを移動出来ると思います。 何方かご指導をお願い致します。

    • ベストアンサー
    • Mac
  • 【JavaScript】二重送信防止

    いつもお世話になっております。 JavaScriptの二重送信防止についてご教授ください。 現在、下記のJavaScriptを組んでいるのですが、うまく二重送信防止が効いていません。 どこか、おかしなコードがありますでしょうか? ちなみに、<html:text>タグ内でonkeypress="JavaScript:toEnter();"を指定…((1))、 <a href>内でonclick="JavaScript:toAdd();"を指定…((2))しているのですが、 テキストボックス内でエンターを押下した時((1))にうまく二重送信防止が効いていません。 宜しくお願い致します。 <script language="JavaScript"> <!-- var flgSubmit = false; function submitCheck() { if ( flgSubmit ) { return false; } else { flgSubmit = true; return true; } } function toEnter(){ if( submitCheck() ) { if(event.keyCode == 13) toAdd(); } } function toAdd() { if( submitCheck() ) { document.AddForm.submit(); } } //--> </script>

  • javascriptで二重送信防止

    javascriptでの二重送信防止(submitボタンの無効化)ができません。 【HTML】 <form name="fm" method="post" onsubmit="return dclk()"> <input type="submit" name="smt" value="送信" /><br /> </form> 【javascript】 function dclk(){ document.fm.smt.disabled = true; return false; } これだと、サブミットボタンを押すとボタンが無効化され、その後、送信自体が キャンセルさるのですが、これだと送信自体ができないので意味がありません。 これはなんとか意味はわかります。 そこでreturn falseを省くと送信されると同時にサブミットボタンが無効化されるのかな?と思ったら、 今度は送信されるようですが送信されたと同時にボタンが無効化されません。 どうすべきでしょうか? ネットで調べたらいろいろな方法があるようで、上記のHTMLとjavascriptのコードで なんとかならないでしょうか?

  • モジュールでボタン操作

    VB2005を使っています。 フォームにあるボタン10個のどれかのボタンを4回(1回使うとEnabled = falseになる)押すと全部のボタンが押せなくなる。 このようにしたくて、モジュールに10個のボタン全部を押せなくする関数を作りました。 Public Sub clickNg() Form.btn0.Enabled = False ・ ・ ・       Form.btn9.Enabled = False End Sub これでできていました。 しかし、新しくフォームを作ると何故か動作しなくなってしまいました。ブレークポイントで関数の動きをしらべているんですが、ちゃんと全部の工程を一通り通っています。 いったいどうしたら直るのでしょうか? 回答お願いします<(_ _)>

  • 【Excel VBA】ユーザーフォーム テキストボックスの有効・無効について

    Excel2003を使用しています。 ユーザーフォームにテキストボックスを11個とコマンドボタンを2個配置しています。 TextBox9に“0000”(文字列です)が入力されたら、TextBox10を有効に、それ以外は無効に設定したく、TextBox10のEnabledプロパティをFalse、LockedプロパティをTrueにして、コードを下記のように書いたのですが、うまくいきません。どこか、間違っているでしょうか? コードは該当部分だけ、載せています。よろしくお願いします。 -------------------------------------------------- If TextBox9.Text = "0000" Then TextBox10.Enabled = True TextBox10.Locked = False TextBox10.BackStyle = fmBackStyleOpaque Else TextBox10.Enabled = False TextBox10.Locked = True TextBox10.BackStyle = fmBackStyleTransparent End If

  • 既にファイルが開いているのなら開かない(二重起動防

    アクセス 既にファイルが開いているのなら開かない(二重起動防止)とするには? 自分なりにコードを考えてみたのですが Sub Sample() Dim acApp As Access.Application Set acApp = CreateObject("Access.Application") acApp.OpenCurrentDatabase "C:\test.accdb" '該当のファイルが開いてないのなら、 If acApp.ReadOnly = False Then acApp.Visible = True acApp.UserControl = True End If End Sub これだと、.ReadOnlyがコンパイルエラーになります。 どうやらReadOnlyはアクセスには用意されてない用語のようです。 このような場合どうすればいいでしょう?

  • ボタンの初期化方法について

    Flash MX2004にて、動的に変化するリンクボタンを作成しております。 フレーム読み込み時に、特定のボタンを以下のようなコードで、enabled=false、色を灰色などにして、非アクティブ状態に設定する ことはできました。  obj_btn.enabled = false;  myBtn = new Color(obj_btn);  myBtn.setRGB(0xBDBDBD); //灰色 今度は、これを、以下の様なコードで元に戻そうとしているのですが、 もともとボタンに設定してあった、Mouse Over,DownなどのActionが発生しません。  obj_btn.enabled = true;  myBtn = new Color(obj_btn);  myBtn.setRGB(000000);//黒色 ボタンをもとの状態に初期化出来れば、良いと思うのですが、 どうしてもその方法が見つかりません。そもそも可能なことなのか も含めて、皆様方のお知恵を拝借いたしたく。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 2重submit防止手法

    以前、画面内容を登録するためにFormのsubmitをした後、結果の画面が表示される前に、別のボタンを押すと、内容がnullのFormが送られる現象が発生することを教えていただきました。 このための防止策として、JSPの中で、フラグを定義し、falseであればsubmit処理し、trueであればsubmit処理しないようにコントロールするようにしました。 var flug = false; function update() { if (flug) { return; } flug = true; aaForm.type = "update"; document.aaForm.submit(); } function check() { if (flug) { return; } flug = true; aaForm.type = "icheck"; document.aaForm.submit(); } function idou() { aaForm.type = "idou"; document.aaForm.submit(); } ・ ・ <input type="button" name="add" value="登録" onClick="update();"/> <input type="button" name="chk" value="検索" onClick="check();"/> <input type="button" name="ido" value="移動" onClick="idou();"/> ・ ・ JSPを見ますと、同じ画面の時はflugをによる2重submit防止の手法が使われていますが、画面遷移するときは使われていません。画面遷移するときは、この手法でいいのでしょうか、それとも、画面遷移の時も2重submit防止手法を組み込んだほうがいいのでしょうか。 また、2重submitを防止するための他の手法がありましたら教えてください。 どうぞよろしくお願いします。

  • Javascriptで二重送信を防止したいが、画像ボタンだとうまくいかない。

    Javascriptでフォームの二重送信防止を行いたいのですが、 送信ボタンが画像だとうまく動作しないようです。 下記のサイトを参考に作ってみたのですが、アラートすらもでないようです。 http://www.futomi.com/lecture/javacss/double_block.html 何かよい策がありましたら教えてください。お願いします。 <<ソース>> <script language="javascript"> <!-- // function submitForm() { document.formname.button.disabled = true; submitForm = disableButton; document.formname.submit(); return false; } function disableButton() { alert('処理中です。しばらくお待ち下さい。'); return false; } // --> </script> ~以下省略~ <form method="POST" form name="formname" action="test.cgi"> ----送信ボタンのコード----- <input type="image" src="images/acc_send.gif" name="send" onclick="submitForm()"> </form>

専門家に質問してみよう