jQuery – agregue parámetros adicionales en submit (NO ajax)

Usando ‘submit’ de jQuery, ¿hay alguna forma de pasar parámetros adicionales a un formulario? No estoy buscando hacer esto con Ajax: esta es la presentación normal y típica de actualización.

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

Este lo hizo por mí:

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

se basa en la respuesta de Daff, pero agregó el atributo NAME para permitir que se muestre en la colección de formularios y cambió VALUE por VAL También marcó el ID del FORMULARIO (form1 en mi caso)

usó el Firebug Firefox para verificar si el elemento fue insertado.

Los elementos ocultos se vuelven a publicar en la colección de formularios, solo se descartan los campos de solo lectura.

Michel

En su caso, debería bastar con agregar otro campo oculto a su formulario de forma dinámica.

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

Incluso puedes usar este. funcionó bien para mí

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

esto enviará btnsubmit = Guardar como valor GET al formulario register.php.

Puede escribir una función jQuery que le permitió agregar campos ocultos a un formulario:

 // 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 = $("").attr("type", "hidden").attr("name", name).val(value); $(this).append($(input)); }); }; 

Y luego agrega el campo oculto antes de enviar:

 var frm = $("#form").addHidden('SaveAndReturn', 'Save and Return') .submit(); 

No es necesario vincular el evento de envío con un clic en el botón Enviar, solo enlaza el evento de envío y capturará el evento de envío sin importar cómo se active.

Piensa que lo que quieres es enviar el ordenable como lo harías a través de ajax. Intenta hacer algo como esto:

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

Respuesta similar, pero solo quería que esté disponible para una prueba fácil / rápida.

 var input = $("") .attr("name", "mydata").val("go Rafa!"); $('#easy_test').append(input);