jQuery的 – 提交额外的参数(NOT ajax)

使用jQuery的“提交” – 有没有办法将其他parameter passing给表单? 我不想用Ajax做到这一点 – 这是正常的,刷新典型的表单提交。

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

这个为我做了:

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

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

使用Firefox的firebug来检查元素是否被插入。

隐藏的元素在表单集合中返回,只有只读字段被丢弃。

米歇尔

在你的情况下,只需添加另一个隐藏的字段到你的表单dynamic。

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

你甚至可以使用这个。 为我工作得很好

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

这将提交btnsubmit =另存为GET值register.phpforms。

你可以写一个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(); 

你不需要绑定提交事件点击提交button只需绑定提交事件,它将捕获提交事件无论如何被触发。

想想你想要的就是像通过ajax那样提交sorting。 尝试做这样的事情:

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

类似的答案,但我只是想提供一个简单/快速的testing。

 var input = $("<input>") .attr("name", "mydata").val("go Rafa!"); $('#easy_test').append(input); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script> <form id="easy_test"> </form>