jQuery-добавить дополнительные параметры при отправке (не ajax)
С помощью jQuery 'submit' - есть ли способ передать дополнительные параметры в форму? Я не собираюсь делать это с Ajax - это нормальная, типичная для обновления форма представления.
$('#submit').click(function () {
$('#event').submit(function () {
data: {
form['attendees'] = $('#attendance').sortable('toArray').toString();
});
});
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