使用非默认操作脚本使用jquery提交表单

时间:2013-03-31 23:23:04

标签: jquery ajax

我正在尝试使用jquery提交表单,但是我想将post变量提交给不同的操作脚本,而不是表单中的默认操作脚本。

更具体地说,这是我的默认表单,当用户单击提交按钮时,该表单以特定方式工作:

<form method="post" action="something.php" id="myForm"> 
</form>

我要做的是提交上面的表单,但我没有使用默认的something.php作为操作脚本,而是使用foo.php

这甚至可能吗?这是我尝试过的,没有成功(帖子变量没有传递到foo.php页面):

$.post('foo.php', '#myForm', function(data) {
    alert(data);
}); 

我很感激有关如何做到这一点的任何建议。

非常感谢提前!

2 个答案:

答案 0 :(得分:2)

如果您只想更改表单发布到的位置,请使用JavaScript更改action属性。

$('#myForm').attr('action', 'foo.php');

如果您打算更改默认行为以使用XHR而不是正常的整页刷新,则仅使用$.post()

答案 1 :(得分:1)

是的,当然可以这样做,但你应该传递一个键值对,你可以使用.serializeArray()方法。

$('#myForm').submit(function(e){
   e.preventDefault();
   $.post('foo.php', $(this).serializeArray(), function(data) {
       // alert(data);
   }); 
});

如果您有点击处理程序:

$('#element').click(function(e){
   //e.preventDefault();
   $.post('foo.php', $('#myForm').serializeArray(), function(data) {
       // alert(data);
   }); 
});