219

jQueryの「submit」を使用する-フォームに追加のパラメーターを渡す方法はありますか?私は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に変更しましたフォームの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 に答える