Quiero enviar un formulario usando jQuery. ¿Alguien puede proporcionar el código, una demostración o un enlace de ejemplo?
Depende de si está enviando el formulario normalmente o mediante una llamada AJAX. Puede encontrar mucha información en jquery.com , incluida documentación con ejemplos. Para enviar un formulario normalmente, consulte el submit()
método en ese sitio. Para AJAX , hay muchas posibilidades diferentes, aunque probablemente desee usar los métodos ajax()
o post()
. Tenga en cuenta que post()
es realmente una forma conveniente de llamar al ajax()
método con una interfaz simplificada y limitada.
Un recurso crítico, uno que uso todos los días, que debe marcar como favorito es Cómo funciona jQuery . Tiene tutoriales sobre el uso de jQuery y la navegación de la izquierda da acceso a toda la documentación.
Ejemplos:
Normal
$('form#myForm').submit();
AJAX
$('input#submitButton').click( function() {
$.post( 'some-url', $('form#myForm').serialize(), function(data) {
// ... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click( function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
// ... do something with the data...
}
});
});
Tenga en cuenta que los métodos ajax()
y post()
anteriores son equivalentes. Hay parámetros adicionales que puede agregar a la ajax()
solicitud para manejar errores, etc.
$.post
deconstruyen y reconstruyen explícitamente el formulario para generar datos para enviar. ¡Gracias!$('form#MyForm').serialize() + '&newData=' + newData + '&moreData=' + moreData
. Nota: los dos últimos pueden necesitar ser codificados en URL usandoencodeURIComponent()
. O bien, podría cambiar para usar la codificación JSON en ambos extremos, pero luego necesitaría colocar los datos del formulario en una estructura de datos JavaScript con sus datos adicionales y serializarlos. En ese caso, probablemente usaríaserializeArray
en el formulario y combinaría sus otros datos.Tendrás que usar
$("#formId").submit()
.Generalmente llamarías a esto desde una función.
Por ejemplo:
Puede obtener más información sobre esto en el sitio web de Jquery .
fuente
cuando tiene un formulario existente, que ahora debería funcionar con jquery - ajax / post ahora podría:
haz tus propias cosas
Tenga en cuenta que, para que la
serialize()
función funcione en el ejemplo anterior, todos los elementos del formulario deben tener suname
atributo definido.Ejemplo de la forma:
@PtF: los datos se envían utilizando POST en esta muestra, por lo que esto significa que puede acceder a sus datos a través de
, donde dataproperty1 es un "nombre-variable" en su json.
aquí muestra la sintaxis si usa CodeIgniter:
fuente
En jQuery preferiría lo siguiente:
Pero, de nuevo, realmente no necesita jQuery para realizar esa tarea, solo use JavaScript normal:
fuente
Del manual: jQuery Doc
fuente
Para información
si alguien usa
No hagas algo como esto
Me llevó muchas horas encontrar que submit () no funcionaría así.
fuente
"sumit"
error tipográfico en la palabra clave no aclara si el error tipográfico no tiene respuesta en la respuesta o si está relacionado con el problema. ¿Quiere decir que un botón llamado"submit"
desordena jquery form submit ()? ¿O quiere decir que el problema fue que le dio el nombre del botón enviar en lugar del estándartype="submit"
?Úselo para enviar su formulario usando jquery. Aquí está el enlace http://api.jquery.com/submit/
fuente
button
a su botón para asegurarse de que el formulario no se envíe (ya que no todos los navegadores tratan los botones sin tipos de la misma manera).esto enviará un formulario con preloader:
Tengo un truco para hacer una publicación de datos de formulario reformada con un método aleatorio http://www.jackart4.com/article.html
fuente
Ver eventos / enviar .
fuente
Tenga en cuenta que si ya instaló un detector de eventos de envío para su formulario, la llamada interna para enviar ()
no funcionará ya que intenta instalar un nuevo detector de eventos para el evento de envío de este formulario (que falla). Por lo tanto, debe acceder al elemento HTML en sí (desenvolver de jQquery) y llamar a submit () en este elemento directamente:
fuente
También puede usar el complemento de formulario jquery para enviar usando ajax también:
http://malsup.com/jquery/form/
fuente
fuente
Tenga en cuenta que en Internet Explorer hay problemas con los formularios creados dinámicamente. Un formulario creado como este no se enviará en IE (9):
Para que funcione en IE, cree el elemento de formulario y adjúntelo antes de enviarlo así:
Crear el formulario como en el ejemplo 1 y luego adjuntarlo no funcionará: en IE9 arroja un error JScript
DOM Exception: HIERARCHY_REQUEST_ERR (3)
Atrezzo a Tommy W @ https://stackoverflow.com/a/6694054/694325
fuente
Las soluciones hasta ahora requieren que conozca la ID del formulario.
Use este código para enviar el formulario sin necesidad de conocer la ID:
Por ejemplo, si desea manejar el evento de clic para un botón, puede usar
fuente
Si el botón se encuentra entre las etiquetas de formulario, prefiero esta versión:
fuente
podrías usarlo así:
O
fuente
Truco de IE para formas dinámicas:
fuente
Mi enfoque es ligeramente diferente Cambie el botón en el botón Enviar y luego haga clic
fuente
Publicará los datos del formulario en su nombre de archivo a través de AJAX.
fuente
Recomiendo una solución genérica para que no tenga que agregar el código para cada formulario. Use el complemento de formulario jquery (http://jquery.malsup.com/form/) y agregue este código.
fuente
podrías hacerlo así:
fuente
También he usado lo siguiente para enviar un formulario (sin enviarlo realmente) a través de Ajax:
fuente