从这个答案和我可能正在使用反模式的事实我认为我应该将ajax调用改为行为,如提交表单.我发现$ .post但这似乎在做ajax并且不会改变我所在的页面.
如何使用jquery或普通JS提交表单?
它就像$.submit()在表单上调用方法一样简单:
$("#formID").submit(); // jQuery
document.getElementById("formID").submit(); // Javascript
Run Code Online (Sandbox Code Playgroud)
或者,如果您仅使用name属性:
$("form[name='formName']").submit(); // jQuery
document.formName.submit(); // Javascript
Run Code Online (Sandbox Code Playgroud)
如果您只对提交数据后重定向页面感兴趣,可以通过回调来执行此操作$.post():
$.post("process.php", { 'foo':$(".bar").val() }, function(result) {
window.location = "thanks.php";
});
Run Code Online (Sandbox Code Playgroud)
提问者在下面的评论中指出,实际上没有任何形式.我建议创建一个:
var myForm = $("<form>")
.attr({'method':'post','action':'process.php'})
.appendTo("<body>");
Run Code Online (Sandbox Code Playgroud)
然后添加您的数据:
$("<input>")
.attr({'type':'hidden','name':'firstname'})
.val("Jonathan")
.appendTo(myForm);
Run Code Online (Sandbox Code Playgroud)
后来,当你准备好了,提交它:
$(myForm).submit();
Run Code Online (Sandbox Code Playgroud)