Existe-t-il un moyen de désactiver la validation côté client pour la zone de texte de date du dojo ?

StackOverflow https://stackoverflow.com/questions/15514

  •  08-06-2019
  •  | 
  •  

Question

Dans mon exemple ci-dessous, j'utilise un dijit.form.DateTextBox:

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" constraints="{datePattern:'MM/dd/yyyy'}"  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>' />

Ainsi, par exemple, si l'utilisateur commence à saisir « asdf » dans la date, le champ devient jaune et un message d'erreur contextuel apparaît indiquant The value entered is not valid..Même si je supprime le constraints="{datePattern:'MM/dd/yyyy'}" ça valide quand même.

Sans entrer dans les détails de pourquoi, j'aimerais pouvoir conserver le dojoType tout en empêchant la validation dans des circonstances particulières.

Était-ce utile?

La solution

Essayez de remplacer la méthode validate dans votre balisage.

Cela fonctionnera (je viens de tester):

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" 
  constraints="{datePattern:'MM/dd/yyyy'}"  
  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>'
  validate='return true;'
/>

Autres conseils

Ma seule suggestion est de supprimer par programme le dojoType côté serveur ou côté client.Il n'est pas possible de conserver le dojoType et de ne pas le faire valider.Sauf si vous créez votre propre type qui contient votre logique.

J'ai eu un problème similaire, où ValidationTextBox répondait à tous mes besoins mais il était nécessaire de désactiver les routines de validation jusqu'à ce que l'utilisateur ait appuyé pour la première fois sur Soumettre.

Ma solution consistait à cloner cela dans une ValidationConditionalTextBox avec quelques nouvelles méthodes :

    enableValidator:function() {
        this.validatorOn = true;
    },

    disableValidator: function() {
        this.validatorOn = false;
    },

Ensuite, dans le validateur:function(), j'ai ajouté une seule vérification :

        if (this.validatorOn)
        { ... }

Assez simple, ma valeur par défaut pour validatorOn est false (cela apparaît juste en haut du javascript).Lorsque mon formulaire est soumis, appelez simplement activateValidator().Vous pouvez consulter le JavaScript complet ici :

http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top