2010-11-07 13 views
5

Je souhaite inclure uniquement certains champs de formulaire lors de l'envoi d'un formulaire avec jQuery. Par exemple, je voudrais ignorer tous les champs qui ont l'attribut disabled ... peut-être quelque chose comme ceci:Ignorer les champs de saisie dans le formulaire submit avec jQuery

$('#my_button').click(function() { 
    if($('input').hasAttr('disabled') { 
     //ignore this form field when submitting 
    } 
    $('form').submit(); 
}); 

Toutes les idées?

Répondre

14

Ce n'est pas nécessaire, les entrées disabled sont exclues déjà. Les différentes méthodes jQuery, y compris submit() et serialize() honorer la spécification HTML 4 pour les contrôles handicapés dans les formulaires Web, qui va comme suit:

Un contrôle réussi est « valide » pour la soumission. Chaque contrôle réussi a son nom de contrôle associé à sa valeur actuelle dans le fichier de formulaire soumis. Un contrôle réussi doit être défini dans un élément FORM et doit avoir un nom de contrôle.

Cependant:

  • Les contrôles qui sont disabled ne peut pas réussir.

http://www.w3.org/TR/html401/interact/forms.html#successful-controls

+1

+1 - Pour les curieux, jQuery [effectue le même filtre quand il sérialise] (https://github.com/jquery/jquery/blob/master/src/ajax. js # L97). –

+0

J'étais sur le point de poster que je pense qu'il va l'ignorer par défaut de toute façon. – Matt

+0

Mais un attribut disabled peut être défini sur false avec javascript. Dans ce cas, ils seront soumis aussi, peut-être que c'est le comportement que ThePixelProdigy veut changer. –