通过对话框提交的表单再次打开对话

时间:2012-11-04 19:56:16

标签: ajax jquery jquery-mobile

我在jquerymobile对话框中有一个表单,我通过jQuery Ajax提交。

目前我的问题是,一旦提交了表单,就会在原始对话框的顶部再次打开相同的对话框。

所以我的网址在提交之前阅读:

url/index.php#&ui-state=dialog

然后提交后:

url/index.php#&ui-state=dialog#&ui-state=dialog&ui-state=dialog

有没有人曾经遇到过这样的事情?

[编辑添加代码示例]

$(function(){
    $("#form").submit(function(e){
        e.preventDefault();
        var dataString = $("#form").serialize();
    errorInput = $("input[name=valOne]#valOne").val();
        $.ajax({
            type: "GET",
            url: "formHandler.php",
            data: dataString,
        dataType: "text",
            success: function(data){
            if(data.toLowerCase().indexOf("error") >= 0){
                alert(data);
                $(".ui-dialog").dialog("close");
                $("#valOne").val(errorInput);  //the reentering info so user doesn't have to
            }else{
                    $(".ui-dialog").dialog("close");
                    location.href="index.php";
            }
            },
            error:function (xhr, ajaxOptions, thrownError){
                alert(thrownError);
            }
        });
    });
});

4 个答案:

答案 0 :(得分:0)

  1. 您可以使用此submit
  2. 在表单上设置自己的处理程序
  3. 为页面和对话窗口使用两种形式。

答案 1 :(得分:0)

您是否尝试过使用$ .mobile.changePage(“url here”)而不是location.href? 更多细节http://jquerymobile.com/test/docs/api/methods.html

答案 2 :(得分:0)

用JS刷新页面而不是再次加载它会不会更容易?它可能是两次调用对话框函数。

答案 3 :(得分:0)

我的表格有类似的问题。我决定改用<div data-role="fieldcontain">。现在它很好,没有“刷新效果”。在这种情况下,您应该使用自己的消息而不是.serialize。