如何使用Jquery发布/提交表单?

时间:2010-02-18 03:54:36

标签: javascript jquery post

This answer and the fact i may be using an anti pattern我认为我应该将ajax调用更改为提交表单之类的行为。我发现$.post但是这似乎在做ajax并且不会改变我所在的页面。

如何使用jquery或普通JS提交表单?

3 个答案:

答案 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&param=value&param=value'

您甚至可以从分散在DOM中的所有数据中动态构建字符串。