如何在不重新加载页面的情况下提交表单并更新colorbox

时间:2011-10-11 08:09:17

标签: jquery jquery-plugins

这是一个跟进: jQuery change content of colorbox

现在初始colorbox(test_2.html)的内容是一个简单的形式: 例如,

<form id="foo" action="test_3.html">
    <imput type="submit" id="formInput" value="send form">
</form>

应该发送表单,test_3.html的内容应该加载到同一个颜色框中。

1 个答案:

答案 0 :(得分:4)

如果将其添加到主页的docReady中,它应该处理所有事情:

$('form').live('submit', function(e){
    var successHref = this.action,
        errorHref = "formError.php";

    e.preventDefault();
    $('#cboxLoadingGraphic').fadeIn();
    $.ajax({
        type: "POST",
        url: "processForm.php",
        data: {someData: $("#someData").val()},
        success: function(response) {
            if(response=="ok") {
                console.log("response: "+response);
                $.colorbox({
                    open:true,
                    href: successHref   
                });
            } else {
                $.colorbox({
                    open:true,
                    href: errorHref
                });
            }
        },
        dataType: "html"
    });

    return false;
});

但是,这段代码做了一些假设。其中之一就是将数据发送到“processForm.php”(如您所见),并且当一切正常时,期望答案为“ok”(纯文本,无json)。如果您不关心响应或处理错误,那么您可以删除if-else块并使用您在action中设置的页面打开颜色框。不管怎样,你可能想要调整一下,但它可以让你知道如何做到这一点。