JQuery - добавить дополнительные параметры в submit (НЕ ajax)
Использование jQuery 'submit' - есть ли способ передать дополнительные параметры в форму? Я НЕ собираюсь делать это с помощью Ajax - это обычная, обновленная форма представления формы.
$('#submit').click(function () {
$('#event').submit(function () {
data: {
form['attendees'] = $('#attendance').sortable('toArray').toString();
});
});
Ответы
Ответ 1
Это сделало это для меня:
var input = $("<input>")
.attr("type", "hidden")
.attr("name", "mydata").val("bla");
$('#form1').append($(input));
основан на ответе Daff, но добавил атрибут NAME, чтобы он отображался в коллекции форм и менял VALUE на VAL
Также проверен идентификатор FORM (form1 в моем случае)
использовал firebug Firefox, чтобы проверить, был ли этот элемент вставлен.
Скрытые элементы отправляются обратно в коллекцию форм, только поля только для чтения отбрасываются.
Мишель
Ответ 2
В вашем случае достаточно просто добавить еще одно скрытое поле в вашу форму динамически.
var input = $("<input>").attr("type", "hidden").val("Bla");
$('#form').append($(input));
Ответ 3
Вы даже можете использовать этот. работал хорошо для меня
$("#registerform").attr("action", "register.php?btnsubmit=Save")
$('#registerform').submit();
это отправит btnsubmit = Сохранить как значение GET в form.php.
Ответ 4
Вы можете написать функцию 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();
Ответ 5
Вам не нужно связывать событие отправки нажатием кнопки "Отправить", просто привяжите событие отправки, и оно будет захватывать событие отправки, если оно не вызвано.
Подумайте, что вы хотите, это отправить сортировку, как вы, используя ajax. Попробуйте сделать что-то вроде этого:
var form = $('#event').submit(function () {
$.each($('#attendance').sortable('toArray'),function(i, value){
$("<input>").attr({
'type':'hidden',
'name':'attendace['+i+']'
}).val(value).appendTo(form);
});
});
Ответ 6
Подобный ответ, но я просто хотел сделать его доступным для простого/быстрого теста.
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>