2009-09-14 5 views
3

J'essaie d'accéder à mon objet formulaire à l'intérieur de la méthode d'erreur de ajaxForm:objet formulaire intérieur de rappel d'erreur ajaxForm

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

erreur peut prendre 3 params, mais aucun d'entre eux sont l'objet de formulaire, aussi ce rendement l'url, mais encore aucune forme.

Des suggestions?

Répondre

3

Tricky, pourquoi ne pas utiliser:

var myForm = $("#foo"); 

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

S'il y a une autre façon, j'aimerais me connaître.

+1

Il est bon que le succès/beforeSubmit ait tous un accès direct à l'objet de formulaire et soit un peu gênant que cette erreur ne soit pas cohérente avec cela. – jsharpe

+0

@crankharder: Vous avez raison, cela peut devenir très confus. –

+0

Cela fonctionne, mais si vous avez une page avec plusieurs formulaires, vous ne seriez pas en mesure d'extraire le bon, semble-t-il. – Yehosef

-1

Est-ce que this ne fonctionne pas? À savoir,

$('#foo').ajaxForm({ 
    error: function(){ 
    alert($(this).attr('name')); 
    } 
}); 
+0

@indedmn: On dirait que le mot-clé this du rappel fait référence à l'URL. Voir l'OP ... –

0

Si vous lisez l'onglet 'Travailler avec des champs' dans les documents de ce plugin, je pense que vous trouverez votre réponse. Pour les performances, vous devez probablement stocker une référence au formulaire avant de lier l'ajaxForm.

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