2011-03-23 35 views
0

我有一個頁面,我希望SimpleModal實現的模態窗口很少。確切的情況如下:SimpleModal - 在同一個元素上調用「modal()」

  1. 頁面已加載。
  2. 用戶點擊按鈕打開模式窗口。
  3. 在模式中,用戶插入(輸入)他所需的所有信息。
  4. 數據經過驗證。 如果驗證失敗,則會顯示一個新的模式並顯示錯誤。這個概念是有一個模式窗口,應該像javascript alert()函數一樣工作。
  5. 當錯誤可見時,先前的模態應該消失。一旦用戶單擊確定,錯誤應該消失,舊的模態應該出現。

現在,我搜索了一個答案,並且看到Eric Martin(SimpleModal的開發人員)討論了多個模態窗口的幾篇帖子。看起來SimpleModal不支持它,他建議用新模型替換模態的內容。

我試圖做的是:

  1. 在我告訴了警報,我保持開放模式的ID。
  2. 隱藏所有打開的模態(隱藏divs)。
  3. 顯示警報並綁定OK按鈕。
  4. 當用戶單擊確定時,我關閉當前模式(警報),獲取舊的div的名稱,並通過調用ShowDialog(「getSubsidiariesForCustomer」)再次顯示它。

我的問題是,當我嘗試運行最後一個命令它不起作用。在調查之後,似乎SimpleModal插件的實現在某個元素上調用了modal()函數時保留了一個標誌。

只是爲了一般知識:

  1. 我使用的是簡單的模態1.41
  2. 好像我在JS faling上線216:

    //不允許多個電話 if(sd數據){ return false; }

我的代碼是緊接在該節: 我通過運行 「jBtnNew_Click」 的邏輯出發:

Admin.BL.SettingsPage.jBtnNew_Click=function(e) 
{ 
    Admin.BL.EcmSettings.ShowDialog("#getSubsidiariesForCustomer"); 
    alert(""); //Just for debugging 
    Admin.BL.EcmSettings.ShowAlert(); 
} 

Admin.BL.SettingsPage.ShowAlert=function() 
{ 
    var id = $("div.model:visible").eq(0).attr("id"); 
    $("#alertBtnOk").one("click", function(e){ 
     $.modal.close(); 
     if (id != undefined) 
     { 
      Admin.BL.SettingsPage.ShowDialog(id); 
     } 
    } 
    ); 
    Admin.BL.SettingsPage.ShowDialog("#alert"); 
} 

Admin.BL.SettingsPage.ShowDialog=function(dialogId) 
{ 
    if (dialogId.indexOf("#") < 0) 
    { 
     dialogId = "#" + dialogId; 
    } 
    $("div.model").hide(); 
    $("#dialog").modal({position:new Array("20%"), 
    overlayId:"dialog-overlay", 
    containerId:"confirm-container"}); 
    $(dialogId).show(); 
} 

這是我的HTML:

獲取客戶的子公司 客戶ID: 客戶名稱: 這是我的警覺

解決這個問題的任何幫助將不勝感激!

謝謝:)

回答

2

我覺得您的問題(#4)可與setTimeout代碼我在SimpleModal處理歌劇的問題。我需要將其刪除,但現在你可以嘗試通過查找下面編輯SimpleModal來源:

setTimeout(function(){ 
    // opera work-around 
    s.d.overlay.remove(); 

    // reset the dialog object 
    s.d = {}; 
}, 10); 

並與替換它:

s.d.overlay.remove(); 
// reset the dialog object 
s.d = {}; 

讓我知道,如果不爲你工作...

+0

嗨Eric,感謝您的評論,但同時我決定以另一種方式實施它。我認爲一旦你回答我會收到一封電子郵件,當我看到我沒有收到郵件時,我改變了實施方式。我非常感謝你的努力! – 2011-03-27 12:53:57

相關問題