Question

I'm trying to access my form object inside of ajaxForm's error method:

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

error can take 3 params, but none of them are the form object, also this returns the url, but again no form.

Any suggestions?

Was it helpful?

Solution

Tricky, why not use:

var myForm = $("#foo");

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

If there is another way, I'd love to know myself.

OTHER TIPS

In ajaxForm The form element itself is accessible in beforeSubmit section:

$('#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
  }
});

If you read the tab 'Working with Fields' in that plugin's docs, I think you'll find your answer.

For performance, you should probably store a reference to the form before you bind the ajaxForm.

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

Does this not work? I.e.,

$('#foo').ajaxForm({
  error: function(){
    alert($(this).attr('name'));
  }
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top