jQuery - 在提交时添加其他参数(NOT ajax)

时间:2010-03-27 19:29:50

标签: jquery parameter-passing form-submit

使用jQuery的'submit' - 是否有办法将其他参数传递给表单?我不打算用Ajax做这个 - 这是正常的,刷新典型的表单提交。

$('#submit').click(function () {
    $('#event').submit(function () {
        data: { 
        form['attendees'] = $('#attendance').sortable('toArray').toString();
    });
});

6 个答案:

答案 0 :(得分:347)

这个人为我做了:

var input = $("<input>")
               .attr("type", "hidden")
               .attr("name", "mydata").val("bla");
$('#form1').append(input);

基于Daff的答案,但添加了NAME属性,让它显示在表单集合中,并将VALUE更改为VAL 还检查了FORM的ID(在我的情况下为form1)

使用Firefox firebug检查元素是否已插入。

隐藏的元素会回发到表单集合中,只会丢弃只读字段。

米歇尔

答案 1 :(得分:25)

在您的情况下,只需动态地向表单添加另一个隐藏字段就足够了。

var input = $("<input>").attr("type", "hidden").val("Bla");
$('#form').append($(input));

答案 2 :(得分:15)

你甚至可以使用这个。对我来说效果很好

$("#registerform").attr("action", "register.php?btnsubmit=Save") 
$('#registerform').submit();

这将提交btnsubmit =另存为GET值到register.php格式。

答案 3 :(得分:11)

您可以编写一个jQuery函数,它允许您向表单添加隐藏字段:

// This must be applied to a form (or an object inside a form).
jQuery.fn.addHidden = function (name, value) {
    return this.each(function () {
        var input = $("<input>").attr("type", "hidden").attr("name", name).val(value);
        $(this).append($(input));
    });
};

然后在提交之前添加隐藏字段:

var frm = $("#form").addHidden('SaveAndReturn', 'Save and Return')
                    .submit();

答案 4 :(得分:10)

您不需要在单击提交按钮时绑定提交事件,只需绑定提交事件,它就会捕获提交事件,而不管它是如何被触发的。

认为你想要的是像通过ajax那样提交可排序的。尝试做这样的事情:

var form = $('#event').submit(function () {
    $.each($('#attendance').sortable('toArray'),function(i, value){
        $("<input>").attr({
            'type':'hidden',
            'name':'attendace['+i+']'
        }).val(value).appendTo(form);
    });
});

答案 5 :(得分:2)

类似的答案,但我只是想让它可以进行简单/快速的测试。

&#13;
&#13;
var input = $("<input>")
               .attr("name", "mydata").val("go Rafa!");

$('#easy_test').append(input);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>



<form id="easy_test">
  
</form>
&#13;
&#13;
&#13;