使用一些其他参数提交表单(post,not ajax)

时间:2014-07-11 08:16:44

标签: javascript jquery forms

我需要点击提交表单来执行非ajax帖子。在提交之前,我必须添加一些额外的表单参数。我是这样做的:

  $("#my_form").on("submit", function (e) {
    e.preventDefault();
    var data = $(this).serializeArray();
    data.push({"name": "extra data1", "value": "extra value 1"});
    var params = $.param(data);
    //what's next?
    //$.post($(this).attr("action"), data: params); // ajax request, I don't need an ajax request
  });

但是我如何实际提交表单以便它不仅发送 其参数,而且我还添加了 ?显然,$(this).submit();不会做到这一点。

3 个答案:

答案 0 :(得分:2)

您可以使用隐藏输入来实现此目的。添加

<INPUT TYPE='hidden' NAME='param1' VALUE='data1' ID='param1'>

这将提交给php。

您可以通过

更改jQuery中此字段的值
$('#param1').value = 'data12';

答案 1 :(得分:2)

您可能希望看到这个问题:Jquery - Create hidden form element on the fly

在你的情况下,我想你可以像这样做一些东西来添加一个隐藏的输入:

$("#my_form").on("submit", function (e) {

   $('<input>').attr({
        type: 'hidden',
        name: 'extra data1',
        value: 'extra value 1'
    }).appendTo($(this));  

});

样本:http://jsfiddle.net/naokiota/XyLUV/


或者,你可以做同样的事情:

$("#my_form").on("submit", function (e) {

   $('<input type="hidden" name="extra data1" value="extra value 1">')
   .appendTo($(this));

});

DEMO:http://jsfiddle.net/naokiota/Kkq6F/1/

希望这有帮助。

答案 2 :(得分:0)

不是从表单中提取数据然后操纵您获得的数据结构,而是在提交之前将隐藏的输入元素添加到表单中。