jQuery-dodawanie dodatkowych parametrów przy wysyłaniu (nie ajax)

Używanie jQuery 'submit' - czy jest sposób na przekazanie dodatkowych parametrów do formularza? Nie chcę tego robić z Ajaxem - jest to normalne, odświeżające-typowe przesyłanie formularza.

$('#submit').click(function () {
    $('#event').submit(function () {
        data: { 
        form['attendees'] = $('#attendance').sortable('toArray').toString();
    });
});
Author: GSerg, 2010-03-27

6 answers

Ten zrobił to dla mnie:

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

Opiera się na odpowiedzi Daffa, ale dodano atrybut NAME, aby pokazać go w kolekcji form i zmieniono wartość na VAL Sprawdziĺ ' em rĂłwnieĹź ID formularza (form1 w moim przypadku)

Użyto firebug Firefox, aby sprawdzić, czy element został wstawiony.

Ukryte elementy są wysyłane z powrotem do kolekcji formularzy, tylko pola tylko do odczytu są odrzucane.

Michel

 321
Author: Michel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-10 06:56:11

W Twoim przypadku powinno wystarczyć dynamiczne dodanie kolejnego ukrytego pola do formularza.

var input = $("<input>").attr("type", "hidden").val("Bla");
$('#form').append($(input));
 25
Author: Daff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-27 01:17:34

Możesz nawet użyć tego. działa dobrze dla mnie

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

To prześle btnsubmit =Zapisz jako wartość GET do rejestru.formularz php.

 14
Author: Parag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-11 07:11:58

Możesz napisać funkcję jQuery, która pozwala na dodawanie ukrytych pól do formularza:

// 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));
    });
};

A następnie dodaj ukryte pole przed wysłaniem:

var frm = $("#form").addHidden('SaveAndReturn', 'Save and Return')
                    .submit();
 10
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 11:24:14

Nie musisz wiązać zdarzenia submit po kliknięciu przycisku submit, po prostu zwiąż Zdarzenie submit, a przechwyci ono Zdarzenie submit bez względu na to, jak zostanie wyzwalane.

Pomyśl, czego chcesz, to złożyć sortowalny, jak byś za pośrednictwem ajax. Spróbuj zrobić coś takiego:

var form = $('#event').submit(function () {
    $.each($('#attendance').sortable('toArray'),function(i, value){
        $("<input>").attr({
            'type':'hidden',
            'name':'attendace['+i+']'
        }).val(value).appendTo(form);
    });
});
 10
Author: PetersenDidIt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-08 16:10:06

Podobna odpowiedź, ale chciałem ją udostępnić do łatwego / szybkiego testu.

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>
 2
Author: Cacho Santa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-15 00:46:57