2011-01-28 59 views
0

我有一個奇怪的問題,我從來沒有遇到過。jQuery UI對話框顯示,但後面仍然提交沒有用戶交互

我有一個包含了它是從所謂的頁面其他按鈕,這僅僅是一個局部視圖:

<button id="editorApproveBtn" name="submitBtn" value="EditorAppove">Approve</button> 
<button id="editorDenyBtn" name="submitBtn" value="EditorDeny">Deny</button> 

這些都是補充叫同樣的事情在頁面上的其他按鈕。

其他按鈕用於簡單的提交 - 以兩種不同的方式保存表單內容,但這兩個提出了一個jQuery對話框,但是,對話框顯示正常,但表單顯示時會立即提交。

這裏是我的對話框代碼:

$('#editorApproveBtn').button().click(function() { 
     $("#confirmApproveDialog").dialog({ 
      bgiframe: true, 
      height: 200, 
      modal: true, 
      resizable: false, 
      width: 400, 
      buttons: { 
       'Yes': function() { 
        $(this).submit(); 
        return false 
       }, 
       'No': function() { $(this).dialog("close"); } 
      } 
     }); 
    }); 

我還沒有一個線索是怎麼回事,我以前從未見過或與它聽說過這種行爲。

有沒有其他人有這個問題或知道一種方法來解決它?或者我犯了一個錯誤,這是它造成的?

在此先感謝您的幫助。

回答

4

嘗試將return false;添加到.click()回調函數的末尾。在某些瀏覽器中,按鈕元素會提交頁面。

像這樣:

$('#editorApproveBtn').button().click(function() { 
    $("#confirmApproveDialog").dialog({ 
     bgiframe: true, 
     height: 200, 
     modal: true, 
     resizable: false, 
     width: 400, 
     buttons: { 
      'Yes': function() { 
       $(this).submit(); 
       return false 
      }, 
      'No': function() { $(this).dialog("close"); } 
     } 
    }); 
    return false; 
}); 
+0

呸,我知道這一定是東西太簡單這樣。謝謝您的幫助! – LiamGu 2011-01-28 16:01:55