2012-01-05 155 views
4

您可能会在很多帖子中找到解决方案(Post 1,Post2),但他们的解决方案不适合我。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"); 

我需要返回false,如果用户点击“取消”,并返回true如果用户点击“OK”。

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

我需要returnVal返回boolean值(真/假),但它返回的JavaScript object

回答

5

您不能从OK/cancel函数返回某些东西,因为它们本质上是仅在单击按钮时处理的事件处理程序。

使用一个单独的函数来处理结果:

$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。 – 2012-01-05 09:41:43

+0

对不起ManseUK(我想接受它与大谢谢!)但等待..我在我的页面上工作..我只是在这里提供了一点代码给你。在提交表格时,我无法传播'结果'。 – 2012-01-05 09:57:55

+0

@Umesh我想让你阅读该页面并接受其他答案 - 不是为了这个问题...你可以创建一个http://jsfiddle.net/与你的问题 – ManseUK 2012-01-05 10:00:31

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> 

希望这可以帮助其他人也:)