2

我有一个表单,在提交后,它还会使用 ajax 向服务器发送一些其他数据:

$('#continue-button').on("click", function(e){
    updateSessionVariables();
});

function updateSessionVariables(){
    $.ajax({
        type: "GET",
        url: update_bom_vars,
        data: myVars
    });
});

这在 Chrome 中可以正常工作,但不会在 Firefox 中提交 ajax 调用。

我试过了:

$('#continue-button').on("click", function(e){
    e.preventDefault();
    updateSessionVariables();
});

现在,这会正确发送数据,但表单不会提交。我什至补充说:

     $('#continue-button').submit();

但没有喜悦。

任何帮助将非常感激。

4

4 回答 4

2

所以我实际上解决了这样的问题:

$('#continue-button').on("click", function(e){
    e.preventDefault();
    updateSessionVariables();
});

function updateSessionVariables(){
    $.ajax({
       type: "GET",
       url: update_bom_vars,
       data: myVars
       success: ajaxComplete
    });
});

function ajaxComplete(){
    $('#parts-form').submit();
}

看来您必须确保 ajax 调用已完成,然后提交才能工作。

感谢所有的投入!

于 2013-01-30T00:10:08.093 回答
0

除非 continue-button 是您的表单的 id,否则它不会提交。我会在这里坚持使用常规的 JavaScript,它更轻一些,而且你所需要的一切:

document.getElementById('formId').submit();

将其添加到您的点击功能中,您应该会很好。

编辑:只是重读并意识到你没有在 Firefox 上成功调用 AJAX,这才是真正的问题。我的错。

如果您要向数据库发送信息,请尝试使用 POST 而不是 GET。GET 就是为了做到这一点……获取信息,而不是提交信息。

于 2013-01-29T19:16:45.137 回答
0

在你的行...

$('#continue-button').submit();

为。。改变:

$('#myFormId').submit();

问候...

于 2013-01-29T19:19:47.343 回答
0

您必须提交表单,而不是按钮:

$('#formwithid').submit();
于 2013-01-29T19:23:31.270 回答