Gibt es überhaupt eine Möglichkeit, die clientseitige Validierung für das Textfeld „Dojo-Datum“ zu deaktivieren?

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

  •  08-06-2019
  •  | 
  •  

Frage

In meinem Beispiel unten verwende ich a dijit.form.DateTextBox:

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

Wenn der Benutzer beispielsweise beginnt, „asdf“ in das Datum einzugeben, wird das Feld gelb und eine Popup-Fehlermeldung erscheint The value entered is not valid..Auch wenn ich das entferne constraints="{datePattern:'MM/dd/yyyy'}" es ist immer noch gültig.

Ohne näher auf den Grund einzugehen, würde ich gerne in der Lage sein, den dojoType beizubehalten und dennoch die Validierung unter bestimmten Umständen zu verhindern.

War es hilfreich?

Lösung

Versuchen Sie, die Validierungsmethode in Ihrem Markup zu überschreiben.

Das wird funktionieren (gerade getestet):

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

Andere Tipps

Mein einziger Vorschlag besteht darin, den dojoType programmgesteuert auf der Server- oder Clientseite zu entfernen.Es ist nicht möglich, den dojoType beizubehalten und ihn nicht validieren zu lassen.Es sei denn, Sie erstellen Ihren eigenen Typ, der Ihre Logik enthält.

Ich hatte ein ähnliches Problem, bei dem die ValidationTextBox alle meine Anforderungen erfüllte, es jedoch notwendig war, die Validierungsroutinen zu deaktivieren, bis der Benutzer zum ersten Mal auf „Senden“ geklickt hatte.

Meine Lösung bestand darin, dies mit ein paar neuen Methoden in eine ValidationConditionalTextBox zu klonen:

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

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

Dann habe ich in validator:function() eine einzelne Prüfung hinzugefügt:

        if (this.validatorOn)
        { ... }

Ziemlich einfach, mein Standardwert für validatorOn ist false (dies erscheint ganz oben im Javascript).Wenn mein Formular gesendet wird, rufen Sie einfach enableValidator() auf.Sie können das vollständige JavaScript hier ansehen:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top