Pregunta

Estoy intentando acceder a mi objeto de formulario dentro del método de error de ajaxForm:

$('#foo').ajaxForm({
  error: function(){
    // where's my $('#foo') object?
  }
});
El error

puede tomar 3 parámetros, pero ninguno de ellos es el objeto de formulario, también esto devuelve la url, pero nuevamente no hay formulario.

¿Alguna sugerencia?

¿Fue útil?

Solución

Tricky, por qué no usar:

var myForm = $("#foo");

myForm.ajaxForm({
 error: function(){
  myForm.//whatever
 }
});

Si hay otra forma, me encantaría conocerme a mí mismo.

Otros consejos

En ajaxForm se puede acceder al elemento del formulario en la sección beforeSubmit :

$('#foo').ajaxForm({

   beforeSubmit: function(formData, jqForm) {
        var myform = jqForm[0];
        /*
         If there are multiple forms in the selector, 
        each form is accessible with its order in the array
        */
   }

  error: function(){
    // where's my $('#foo') object?
    //It is here: myform
  }
});

Si lees la pestaña 'Trabajar con campos' en los documentos de ese complemento, creo que encontrarás tu respuesta.

Para el rendimiento, probablemente debería almacenar una referencia al formulario antes de vincular el ajaxForm.

$(document).ready(function() {
    $foo = $('#foo');
    $foo.ajaxForm({
        error: function() {
            alert($('#fieldId', $foo).fieldValue()[0]);
        }
    });
});

¿ this no funciona? Es decir,

$('#foo').ajaxForm({
  error: function(){
    alert($(this).attr('name'));
  }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top