用一些附加参数提交表单(post,NOT ajax)

我需要通过单击提交表单来执行非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(); 不会这样做。


你可能想看到这个问题:Jquery - 动态创建隐藏的表单元素

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

$("#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));

});

演示:http://jsfiddle.net/naokiota/Kkq6F/1/

希望这可以帮助。


您可以为此使用隐藏的输入。 加

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

这将被提交给PHP。

你可以通过改变jQuery的这个字段的值

$('#param1').value = 'data12';

不要将数据从表单中提取出来,然后操作数据结构,只需在提交表单之前将隐藏的输入元素添加到表单中。

链接地址: http://www.djcxy.com/p/83485.html

上一篇: Submitting a form (post, NOT ajax) with some additional parameters

下一篇: How to automatically add textbox