jQuery-добавить дополнительные параметры при отправке (не ajax)



С помощью jQuery 'submit' - есть ли способ передать дополнительные параметры в форму? Я не собираюсь делать это с Ajax - это нормальная, типичная для обновления форма представления.



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

6 ответов:

этот сделал это для меня:

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

основан на ответе Daff, но добавил атрибут NAME, чтобы он отображался в коллекции форм, и изменил значение на VAL Также проверен идентификатор формы (form1 в моем случае)

использовал Firefox firebug, чтобы проверить, был ли вставлен элемент.

скрытые элементы возвращаются в коллекцию форм, отбрасываются только поля только для чтения.

Михель

в вашем случае достаточно просто добавить еще одно скрытое поле динамически в форму.

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

вы даже можете использовать этот. работал хорошо для меня

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

это отправит btnsubmit =Сохранить как получить значение для регистрации.php форма.

вы можете написать функцию 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();

вам не нужно связывать событие отправки по щелчку кнопки отправки, просто свяжите событие отправки, и оно будет захватывать событие отправки независимо от того, как оно запускается.

думаю,что вы хотите, чтобы представить сортируемый, как вы бы через ajax. Попробуйте сделать что-то вроде этого:

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

аналогичный ответ, но я просто хотел сделать его доступным для легкого/быстрого теста.

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>

Comments

    Ничего не найдено.