2012-03-09 166 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>