2012-03-09 99 views
2
我在与模态对话框的问题

,它激活时,用户推动和输入按钮,然后模态对话框显示,并立即消失,不用做任何事情。模态对话框关闭立即

代码:

$('form').submit(function(e) { 
        var dialog = $("#dialog"); 
        if ($("#dialog").length == 0) { 
         dialog = $('<div id="dialog" style="display:hidden"> Los datos ingresados son:</div>').appendTo('body'); 
        } 
        dialog.load(
         $("#dialog").dialog({ 
          close: function(event, ui) { 
           dialog.remove(); 
          }, 
          resizable: false, 
          //height: 140, 
          //width: 460 
          modal: true, 
          buttons: { 
           "Ok": function() { 
            $(this).dialog("close"); 
           }, 
           Cancel: function() { 
            $(this).dialog("close"); 
           } 
          } 
         }) 
        ); 
        return true; 
       }); 

再说了,我怎么能做出的是,当用户推入模态对话框确定,事件持续?

+0

打电话给你的事件在“确定”按钮的处理程序。 – 2012-03-09 13:28:48

+0

谢谢!我要去尝试它!,任何线索为什么我',有模态对话的问题?它关闭中介它出现? – 2012-03-09 13:32:22

+0

你的意思是它不会等待用户点击任何按钮? – 2012-03-09 13:35:24

回答

6

add e.preventDefault();

,并提交就OK按钮,点击设置形式后真实isConfirmed

var isConfirmed = false; 


$('form').submit(function(e) { 
       if(!isConfirmed){ 
        var dialog = $("#dialog"); 
        if ($("#dialog").length == 0) { 
         dialog = $('<div id="dialog" style="display:hidden"> Los datos ingresados son:</div>').appendTo('body'); 
        } 
        dialog.load(
         $("#dialog").dialog({ 
          close: function(event, ui) { 
           dialog.remove(); 
          }, 
          resizable: false, 
          //height: 140, 
          //width: 460 
          modal: true, 
          buttons: { 
           "Ok": function() { 
            $(this).dialog("close"); 
            isConfirmed=true; 
            $("form").submit(); 
           }, 
           Cancel: function() { 
            $(this).dialog("close"); 
           } 
          } 
         }) 
        ); 
        e.preventDefault(); 
        return false; 
       } 
       else 
        return true; 
       }); 
+0

感谢的人!我工作完美! – 2012-03-09 14:28:46

2

按我的理解,你可以尝试:

buttons: { 
           "Ok": function() { 
            //Call your event here. 
            $(this).dialog("close"); 
           }, 
           Cancel: function() { 
            $(this).dialog("close"); 
           } 
          } 

希望这有助于。

0

要确保该事件传播如预期距离对应的方法返回true。

"Ok": function() { 
    return true; 
} 
1

你也可以验证您的一个标签href是“#”。我没有这些,链接自动提交。随着哈希按预期工作。

0

我得到了同样的问题,同时,我转移到模态对话框的高级版本。创作者出于某种原因将其命名为Nifty dailog box。

您可以从Tympanus

0

访问文档我有两个引导文件在我的代码的末尾:

<script src="js/bootstrap.min.js"></script> 
<script src="js/bootstrap.js"></script> 

然后我删除bootsrap.min.js和它的工作,我也包括在结束:

<script> 
    $(document).ready(function(){ 
    $('[data-toggle="tooltip"]').tooltip(); 
    }); 
</script>