Tengo una página con un formulario normal con un botón de enviar y jQuery que se une al evento de envío de formulario y lo reemplaza con e.preventDefault()
y ejecuta un AJAX mando. Esto funciona bien cuando se hace clic en el botón Enviar, pero cuando se hace clic en un enlace con onclick='document.formName.submit();'
, el evento no es detectado por el manejador de eventos de envío de formularios AJAX. ¿Alguna idea de por qué no o cómo hacer que funcione sin obligar a todos los elementos?jQuery anular formulario enviar no funciona cuando enviar llamado por javascript en un elemento
Respuesta
Un par de sugerencias:
- sobrescribir la función para hacer su hacer una oferta mal
var oldSubmit = form.submit;
form.submit = function() {
$(form).trigger("submit");
oldSubmit.call(form, arguments);
}
- ¿Por qué no se unen a todos los <un> Etiquetas enviar? Entonces usted no tiene que hacer ninguna parches mono, y podría ser tan simple como (suponiendo que todos los enlaces están dentro de la etiqueta del formulario):
$("form a").click(function() {
$(this).parents().filter("form").trigger("submit");
});
Si está utilizando jQuery, debe adjuntar eventos a través de su propio event mechanism y no mediante el uso de propiedades "on" (onclick etc.). También tiene su propio método de activación de eventos, acertadamente llamado 'trigger', que debe usar para activar el evento de envío de formularios.
Estoy de acuerdo, no use código obtrusivo en su código, solo lo hace para dolores de cabeza si está mezclando JavaScript discreto con él. –
Gracias Eran
estoy utilizando este código de enlace
this._form.bind('submit', Delegate.create(this, function(e) {
e.preventDefault();
this._searchFadeOut();
this.__onFormSubmit.invoke(this, new ZD.Core.GenericEventArgs(this._dateField.attr('value')));
});
evento pero no hay código de legado onclick
en el HTML y yo preferiría no cambiar, ya que hay tan muchos enlaces.
El problema es que al llamar al método submit() del formulario no se activará el evento. Es lo mismo con un método input focus(): simplemente no pasan por la cadena de delegación de eventos normal. –
Esto funcionó para mí:
Hacer un botón ficticio, ocultar el verdadero presente con el nombre someterse,
y luego:
$("#mySubmit").click(function(){
$("#submit").trigger("click"); });
establecer un controlador de eventos en su maniquí para disparar clic en el fo rm enviar botón. deje que el navegador descubra cómo enviar el formulario ... De esta manera no necesita preventDefault
en el formulario enviado, que es donde comienza el problema.
Esto pareció solucionar el problema.
- 1. jQuery enviar no funciona en Opera
- 2. Enviar formulario sin Javascript
- 3. jQuery iframe formulario enviar
- 4. Javascript Enviar no incluye Enviar Botón Valor
- 5. jquery: enviar un formulario dos veces
- 6. jQuery, enviar formulario con un botón
- 7. Auto Enviar un formulario (cURL)
- 8. JQuery Autocompletar: ¿Enviar formulario en la selección?
- 9. JQuery-UI ordenable en el formulario enviar
- 10. ASP.NET MVC 4 AJAX Enviar formulario no funciona
- 11. Jquery Validate Remote está fallando. No puedo enviar el formulario
- 12. Enviar campos ocultos en un formulario html
- 13. Enviar formulario cuando ingrese la tecla presionada con Prototype javascript
- 14. Node.js - enviar formulario
- 15. Botón HTML para NO enviar formulario
- 16. Formulario Enviar Ejecutar JavaScript ¿Mejores prácticas?
- 17. ¿Puedo hacer un <button> no enviar un formulario?
- 18. Enviar formulario usando AJAX y jQuery
- 19. ¿Cómo enviar un formulario con AJAX/JSON?
- 20. Enviar formulario cuando se presiona Entrar
- 21. Pase una variable adicional al enviar un formulario usando jQuery
- 22. Enviar formulario a través de AJAX en jQuery
- 23. ¿Cómo enviar de forma confiable un formulario HTML con JavaScript?
- 24. jQuery Ajax, cuando periodicaly llamado, no funciona en IE8
- 25. ExtJS - Formulario enviar código
- 26. Enviar un valor de javascript a jsp (con jquery)
- 27. enviar formulario al hacer clic en evento usando jquery
- 28. Drupal formulario enviar, formulario after_build
- 29. Botón Enviar imagen dentro de un formulario
- 30. enviar un formulario ajax jQuery con dos botones de envío
¿Qué significa 'forma' en el primer ejemplo? – tishma
@tishma El elemento DOM de formulario, como en este ejemplo: http://stackoverflow.com/a/931482/1048862 – Matt
Esto no funcionará en algunos navegadores más antiguos. JS. La propiedad de envío es la razón. Use $(). Submit (function() {...}); en lugar. –