2010-08-19 9 views
3

d'abord un peu de documentation du plug-in de validation jQuery:En utilisant la méthode submitHandler de plugin validation jQuery correctement

« Utilisez submitHandler pour traiter quelque chose et puis en utilisant la valeur par défaut de soumettre Notez que. « Forme » fait référence à un élément DOM De cette façon, la validation n'est plus déclenchée. "

submitHandler: function(form) { 
    $.ajax({ 
     type: 'POST', 
     url: form.action, 
     data: 'current_password=' + form.current_password + '&new_password=' + form.new_password, 
     success: function(){ 
      alert("succes"); 
     } 
    }); 
} 

Donc, naturellement, mon ingénieux morceau de code ne fonctionne pas. J'essaie d'accéder à l'attribut 'action' et aux deux champs de saisie de l'objet formulaire, sans aucune chance. Comment suis-je censé faire ça?

+0

Quelle erreur obtenez-vous en exécutant ceci? –

+0

Eh bien, si je change de form.action $ (formulaire) .attr ('action'), et que les données soient, il soumet les éléments suivants: current_password = [HTMLInputElement objet] & new_password = [objet HTMLInputElement] dans firebug –

Répondre

8

Essayez ceci:

submitHandler: function(form) { 
    $.ajax({ 
     type: 'POST', 
     url: $(form).attr('action'), 
     data: { current_password : form.current_password.value, 
       new_password: form.new_password.value } 
     success: function(){ 
      alert("succes"); 
     } 
    }); 
} 

Actuellement au lieu de soumettre les valeurs des éléments qu'il appelle littéralement toString sur eux, donc il suffit d'ajouter .value pour obtenir les valeurs. En outre, nous passons data en tant qu'objet ici afin qu'il soit codé, sinon si par exemple le mot de passe avait un &, la publication ne serait pas correcte.

+0

L'objet de données fonctionne très bien, mais j'obtiens toujours une erreur en essayant d'accéder à form.action. Y a-t-il un moyen d'appeler cet attribut de l'objet? –

+1

@ soren.qvist - À quoi ressemble votre élément '

'? Est également '$ (form) .attr ('action')' donnant un résultat différent? –

+0

$ (forme) .attr ('action') fonctionne bien. Mais je suis inquiet que cette approche est récursive, à savoir. sélectionner à nouveau le formulaire au lieu d'utiliser l'objet actuel. –

Questions connexes