2009-09-20 49 views
1

我有一个表单,用户可以提交信息。提交可能会成功或者不成功。表单提交后的jQuery UI对话框

在这两种情况下,我都需要一个对话框来告诉用户它是否成功。
页面会在表单提交中加载。 Ergo,页面不通过Ajax提供。

我知道如何通过点击一个按钮/链接等 触发对话框但我怎么能使用表单提交jQuery UI Dialog

UPDATE

我已经找到了解决办法。 You can read the solution in this thread

+0

刚刚看到您的更新。 :/不知道我的回答:) – 2009-10-28 09:01:18

回答

0

您应该能够将事件处理程序绑定到表单上的提交事件。

$("form_name_here").bind("submit", function(){$("dialog").open()}) 

或者任何方法是显示对话框。我记不起我的头顶。另一种选择是使用jQuery表单插件,因为我假设你使用ajax来提交表单。通过这种方式,您可以传递与提交表单相关的所有事件的方法。之前,之后,成功,失败等。

+0

表单未使用Ajax提交。所以你的解决方案只会在点击后显示对话框,但在页面重新加载之前。 – Steven 2009-09-20 17:57:21

+0

当页面打开时,您的脚本应该尝试打开对话框。服务器响应将不得不添加url参数或在脚本中设置一个变量以确定应用程序处于何种状态(新建,失败,成功)。我认为这是你唯一的选择,因为你不使用ajax。 – ScottyUCSD 2009-09-20 21:43:26

1

不要使用type ='submit',而是将jQuery事件绑定到普通按钮,通过ajax处理表单。当通过ajax获得结果时,您可以在对话框中显示ajax请求的结果(PHP在对话框中生成消息),也可以有条件检查它是否成功,然后采取适当的操作。

下面是一个在表格中的例子。 (编码有点草率)

$(document).ready(function() { 
     $('#submit').click(function() { 
      name = $('#name').val(); 
      email = $('#email').val(); 
      number = $('#number').val(); 
      message = $('#message').val(); 
      $.post("contact.php", //PHP file to send POST to 
      { ajax: 'yes', name: name, email: email, number: number, message: message }, //POST fields to send 
      function(returned) { //What to do if the POST finishes. 'returned' is the value recieved back from the script. 
       if (returned == 'done') { 
        //PHP script returns the word 'Done' 
         alert('Submit successful'); 
        });     
       } else { 
        alert('An error has occured'); 
}});});}); 
相关问题