Ne pas soumettre les champs de formulaire vide dans ExtJS
J'ai un extjs formulaire avec des champs. L'utilisateur n'est pas nécessaire d'entrer des données dans chaque champ, donc je ne veux pas soumettre les champs de l'absence de données. Je le veux afficher uniquement les champs qui ont réellement des données. Est-ce possible?
OriginalL'auteur Chris | 2011-07-27
Vous devez vous connecter pour publier un commentaire.
Je recommande l'utilisation du formulaire
beforeaction
événement. Lors de la manipulation de cet événement, vous pouvez vérifier tous les champs. Si toutes les valeurs sont vides justereturn false;
. L'exemple suivant fonctionne dans ExtJS4 et a travailler dans ExtJS3:Actuellement, la bonne manière de ne pas se soumettre champs vides est d'utiliser de l'actionsubmitEmptyText
config. Mais cela ne fonctionne pas dans la version actuelle (ExtJS4.0.2 a).submitEmptyText
'utilisation.SubmitEmptyTex
t fait est évaluée uniquement lorsqu'un champ est''
(vide) puis remplace simplement la chaîne de caractères vide avec leemptyText
de la propriété. Si défini à false, il ne laisse que le vide de chaînes que se, ce qui signifie qu'ils seraient toujours être inclus avec la demande.vous avez probablement raison. Merci.
Appelez simplement
form.getValues(false, true);
Le deuxième paramètre est dirtyOnly=true, ce qui signifie que vous obtenez seulement les champs avec des valeurs.Ce n'est pas correct. Cela ne se salir les champs, donc si vous avez des champs avec préremplie valeurs (par exemple, les champs cachés) ce ne sera pas les faire.
OriginalL'auteur Molecular Man
Un autre choix est de remplacer la composante
getSubmitValue()
méthode et retournull
si ce champ est vide, de cette façon il ne sera pas inclus dans soumettre les champs.OriginalL'auteur serg
Au lieu d'utiliser de soumission du formulaire, appelez directement Ext.Ajax.demande de(...) avec l'url, le type de méthode (GET/POST) et les paramètres (et toutes les autres options comme expliqué dans l'appel de la documentation).
Pour générer params, parcourir les champs de formulaire et de vérifier la valeur null avant de l'ajouter à params.
OriginalL'auteur Amol Katdare
Ce bug est présent dans ExtJS 4.0.7 trop.
Comme Molécule de l'Homme a signalé:
Une solution possible pour résoudre ce bug est en substituant 2 fonctions, getValues dans "Ext.forme.De base" (d'où le bug est) et createForm (pour créer la forme de base) dans "Ext.forme.Le panneau de configuration", par extension, de la manière suivante:
Le code est copié à partir du poste le code source. Le seul changement est à l'intérieur de l'itération de chaque champ: mis en œuvre à la suite de l'habillage "si":
Je suis un peu en retard mais mieux tard que jamais...
OriginalL'auteur henryabra