219

使用 jQuery 的“提交” - 有没有办法将附加参数传递给表单?我不希望使用 Ajax 来执行此操作 - 这是正常的、刷新典型的表单提交。

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

6 回答 6

396

这个是为我做的:

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

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

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

隐藏元素确实会在表单集合中回发,只有只读字段被丢弃。

米歇尔

于 2010-03-27T23:49:40.660 回答
27

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

var input = $("<input>").attr("type", "hidden").val("Bla");
$('#form').append($(input));
于 2010-03-27T19:33:11.463 回答
22

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

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

这会将 btnsubmit =Save as GET 值提交到 register.php 表单。

于 2012-09-11T07:11:58.820 回答
12

您无需在单击提交按钮时绑定提交事件,只需绑定提交事件,无论它如何触发,它都会捕获提交事件。

想想你想要的是像通过 ajax 一样提交可排序的文件。尝试做这样的事情:

var form = $('#event').submit(function () {
    $.each($('#attendance').sortable('toArray'),function(i, value){
        $("<input>").attr({
            'type':'hidden',
            'name':'attendace['+i+']'
        }).val(value).appendTo(form);
    });
});
于 2010-03-27T19:51:16.037 回答
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();
于 2013-03-26T11:24:14.797 回答
3

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

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>

于 2015-09-15T00:46:57.910 回答