2011-01-28 57 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