0

Ich steckte mit der Inline-Validierung in der Kendo-Grid. Ich möchte nicht nach dem Fokus verlieren validieren. Ich möchte sofort nach der Eingabe bestätigen. Also benutze ich den HTML5 Validator. Es funktioniert ziemlich gut, aber das Problem ist, kann ich diese zwei Fragen nicht beantworten:Nach Eingabe wird ungültig in HTML5 gesetzt Fehlermeldung und verhindern Standard Fehlermeldung von Kendo in einem Raster

welches Ereignis setzte die Eingabe von gültig zu ungültig.

Welches Ereignis zeigt die Fehlermeldung an.

Meine aktuelle Arbeit: https://dojo.telerik.com/OSONo/56

Mit freundlichen Grüßen

Lukas

Antwort

-1

Mein Problem auf eigene Faust gelöst. Ich werde den Beitrag bearbeiten, damit Sie sehen können, was ich meine, aber zuerst gebe ich nur das Dojo-Projekt.

https://dojo.telerik.com/OSONo/64

mein edit:

Es tut mir leid für meine früheren anwser, ich will ihn nur ich in meinem Kommentar erwähnen meine Lösung geben.

In meiner Lösung habe ich einen Event-Listener erstellt, wie auf alle Eingabeelemente zu hören. Wenn etwas geändert wurde, wird die aktuelle Cursorposition gespeichert (der Import für die Unterstützung) und danach wird das Ereignis "change" ausgelöst. Das Ereignis "change" prüft, ob es gültig oder ungültig ist. Wenn es ungültig ist, zeigt der Kendo-Validator implizit die Fehlermeldung an (nicht standardmäßig durch ein Blur-Ereignis).

var ValidierungCheckClass = (function() { 
return { 
    AllDOMElements: function() { 
     $('body').on('input', function() { 
      var myActiveElement = $(':focus'); 

      if ((myActiveElement) && (myActiveElement.context.activeElement.nodeName.toLowerCase() !== "body")) { 
       var myActiveDOMElement = myActiveElement[0], 

        start = myActiveDOMElement.selectionStart, //just for IE Support 
        end = myActiveDOMElement.selectionEnd;   //just for IE Support 

       myActiveElement.trigger("change"); 

       myActiveDOMElement.setSelectionRange(start, end); //just for IE Support 

      } 
     }) 
    } 
    } 
}); 

Das Änderungsereignis wurde bereits von Kendo erstellt, sodass Sie nicht selbst schreiben müssen.

Zumindest müssen Sie die Methode beim Erstellen der Website aufrufen.

<script> 
     ValidierungCheckClass().AllDOMElements(); 
</script> 

Dies ist meine Lösung für mein Problem.

mit freundlichen Grüßen.

+0

Nur ein Link ist keine Antwort (auch wenn Sie ab und zu zusätzliche Informationen hinzufügen können; warten Sie bis zu diesem Moment mit der Beantwortung der Frage). –

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/18676344) – iBug

+0

Verwenden Sie den Link zum Bearbeiten Ihrer Frage, um weitere Informationen hinzuzufügen. Die Schaltfläche Post-Antwort sollte nur für vollständige Antworten auf die Frage verwendet werden. - [Aus Bewertung] (/ review/low-quality-posts/18676344) –

0

welches Ereignis die Eingabe von gültigen auf ungültig gesetzt.

...

welches Ereignis zeigt die Fehlermeldung an.

Führen Sie einfach Ihre kendoValidator mit validator.validate(); Die Fehlermeldungen sind auch mit validate() gesetzt.

So etwas sollte funktionieren:

$(document).on('input propertychange', function() { 
    validator.validate(); 
}); 

Die Warnung scheint hinter einigen Elementen versteckt werden, so dass Sie auch die Folowing Errortemplate zu Ihrem kendoValidator hinzufügen:

errorTemplate: '<div class="k-widget k-tooltip k-tooltip-validation" style="margin: 0.5em; display: block;"><span class="k-icon k-i-warning"></span>#=message#<div class="k-callout k-callout-n"></div></div>' 

und die gesamte Lösung : https://dojo.telerik.com/OSONo/66

+0

Ich hatte einige Probleme, es zu lösen. Meine Lösung funktioniert nicht mit validator.validate()., Aber wenn Sie mir zeigen, wie ich es tun soll, können Sie mir zeigen, dass ich nur ein Idiot war. Ich würde das sehr schätzen :). –

+0

Ich habe hinzugefügt, wie die Validierung() zu binden. Dies könnte eine einfachere Lösung als Ihre sein. – CennoxX

+0

Hey danke für deine Antwort. Es funktioniert ziemlich gut in Chrom. in meinem Internet Explorer 11 scheint es nicht zu funktionieren. Kannst du mir auch helfen? Danke im Vorteil! –

Verwandte Themen