从This answer and the fact i may be using an anti pattern我认为我应该将ajax调用更改为提交表单之类的行为。我发现$.post但是这似乎在做ajax并且不会改变我所在的页面。
如何使用jquery或普通JS提交表单?
答案 0 :(得分:9)
就像在表单上调用$.submit()
方法一样简单:
$("#formID").submit(); // jQuery
document.getElementById("formID").submit(); // Javascript
或者,如果您仅使用name属性:
$("form[name='formName']").submit(); // jQuery
document.formName.submit(); // Javascript
如果您只对提交数据后重定向页面感兴趣,可以通过$.post()
调用的回调来执行此操作:
$.post("process.php", { 'foo':$(".bar").val() }, function(result) {
window.location = "thanks.php";
});
提问者在下面的评论中指出,实际上没有任何形式。我建议创建一个:
var myForm = $("<form>")
.attr({'method':'post','action':'process.php'})
.appendTo("<body>");
然后添加您的数据:
$("<input>")
.attr({'type':'hidden','name':'firstname'})
.val("Jonathan")
.appendTo(myForm);
之后,当你准备好之后,提交它:
$(myForm).submit();
答案 1 :(得分:0)
您也可以异步
var params = { 'key1' : 'value1' , 'key2' : 'value2' }; $.post( '/site/resource/' , params , function(ret) { alert(ret) } );
答案 2 :(得分:-1)
如果你可以提交,你可以试试这样的javascript:
window.location = 'http:/host/path?param=value¶m=value¶m=value'
您甚至可以从分散在DOM中的所有数据中动态构建字符串。