2012-01-05 439 views
4

多くの記事(Post 1Post2)で解決策が見つかるかもしれませんが、その解決策は私には効果がありません。jquery UIダイアログボックスの戻り値

ここに私が書いた通常のjqueryダイアログボックスがあります。

$("#dialog").dialog({ 
     autoOpen:false, 
     buttons:{ 
      "ok":function(){           
         $(this).dialog("close"); 
         return true;                  
        }, 
      "cancel":function(){       
         $(this).dialog("close");  return false;     
       } 
      } 
}); 

私はコードでダイアログボックスを開きます:

var returnVal=$("#dialog").dialog("open"); 

私は、ユーザーがクリックした場合は、「キャンセル」と、ユーザーが「OK」をクリックした場合trueを返し、falseを返却する必要があります。

var returnVal=$("#dialog").dialog("open"); 

私はboolean値(真/偽)を返すようにreturnValが必要ですが、それはjavascriptのobjectを返します。

答えて

5

ボタンをクリックしたときにのみ処理されるイベントハンドラであるため、OK /キャンセル機能から何かを返すことはできません。

結果を処理するために別の関数を使用します。

$mydialog = $("#dialog").dialog({ 
    autoOpen: false, 
    buttons: { 
     "ok": function() { 
      $(this).dialog("close"); 
      processResult(true); 
     }, 
     "cancel": function() { 
      $(this).dialog("close"); 
      processResult(false); 
     } 
    } 
}); 

$mydialog.dialog("open"); 


function processResult(result) { 
    alert(result); 
} 

の作業例:http://jsfiddle.net/nz2dH/

+0

はあなたにManseUKをありがとうございます。 –

+0

申し訳ありませんManseUK(私は大きなおかげでそれを受け入れたかったですが)待っています。私は私のページでそれを処理しています。私はフォームが提出された場所で「結果」を伝えることができません。 –

+0

@Umeshあなたはそのページを読んで、他の回答も受け入れて欲しかったです。この質問ではなく...あなたの問題でhttp://jsfiddle.net/を作成することができますか? – ManseUK

4

を私はこのようなカスタムメッセージとコールバック機能付はい/いいえ確認ダイアログを実装していません。これは、さまざまな目的で同じダイアログを使用したい場合に便利です。

<script type="text/javascript"> 
    // prepare dialog 
    $(function() { 
     $("#confirm-message-dialog").dialog({ 
      autoOpen: false, 
      modal: true, 
      closeOnEscape: false, 
      buttons: { 
       Yes: function() { 
        $(this).dialog("close"); 
        $(this).data("callback")(true); 
       }, 
       No: function() { 
        $(this).dialog("close"); 
        $(this).data("callback")(false); 
       } 
      } 
     }); 
    }); 

    // open dialog with message and callback function 
    function confirmMessageDialog (message, callback) { 
     $('#confirm-message-dialog-message').text(message); 
     $('#confirm-message-dialog').data("callback", callback).dialog("open"); 
    }; 
</script> 

<!-- The dialog content --> 
<div id="confirm-message-dialog" title="Warning"> 
    <p id="confirm-message-dialog-message"></p> 
</div> 

これは、同様に他の人を助けますことを願っています:)

関連する問題