4

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

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

这样我的网址在提交之前就会读取:

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

4 回答 4

0
  1. 您可以使用此提交在表单上设置自己的处理程序
  2. 为页面和对话窗口使用两种形式。
于 2012-11-04T20:24:40.060 回答
0

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

于 2012-11-19T19:47:38.840 回答
0

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

于 2012-11-22T10:41:26.063 回答
0

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

于 2012-11-17T13:51:40.043 回答