Text-Eingänge mit maxlength nicht validieren mit jQuery Validierung
Ich bin stecken mit einem problem mit jQuery Validieren. Die Sache ist, ich habe ein paar Textfelder, die mit Ihren maxlength
Attribute festgelegt. Obwohl Sie sind nicht erforderlich, Sie immer noch nicht zu überprüfen, wenn Sie entweder leer ist oder Leerzeichen.
Beispiel-HTML:
<input type="textbox" id="tbx1" maxlength="100" value="" />
Dann $('#tbx1').valid()
zurück false
. Sollte es nicht zurück true
statt? Gibt es bekannte workarounds für dieses?
Oh, und das hinzufügen von $('#myform').validate({ ignore: '#tbx1' });
funktioniert nicht ganz bei mir, denn ich bin mit ASP.NET Kontrollen mit Ihren automatischen IDs. Ich weiß, ich könnte entweder die Kontrolle der client-id oder so etwas wie Wilco ist IDOverride, aber das ist einfach nicht das, was ich bevorzuge.
Also, noch jemand? Danke!
- ist die textbox ein Pflichtfeld? Ich denke das validate plugin kürzt whitespace, also wenn das Feld leer ist oder nur Leerzeichen & erforderlich ist es nicht Valide ist.
- das ist der Punkt. das Feld ist nicht erforderlich. Ich weiß nicht, ob es ein bug ist oder beabsichtigt, aber ich möchte zu finden eine Abhilfe für dieses
- Dieser hat einen Fehler. Ich leide mit der gleichen Sache. Sie haben ein Feld, das NICHT verlangt, aber geben Sie ihm einfach eine maxlength-und plötzlich ist das jquery validate plugin denkt, dass es die Validierung fehlschlägt. 100% bug. Der andere tell tale Zeichen ist, dass es nicht einmal ein Fehler für das Feld. Also irgendwas ist definitiv kaputt in es. Frustrierend, weil ich maxlength Grenzen auf meinen Feldern!
- Yup, das ist ein bug der sicher. So, da meine app wird nur bereit sein, in drei Monaten, bis dann, ich werde einfach die maxlength-off und hoffe auf ein fix im nächsten update.
- Ich wollte nur bestätigen, dass mit jQuery 1.5 und jQuery Validierung 1.7, ich habe das gleiche problem. ASP.NET Elemente mit MaxLength scheitern zu validieren, wenn ich nicht setzen Sie Sie erforderlich.
- verwenden Sie option ignorieren. deklarieren $("form").validate({ingore: ".ignorieren"}), und fügen Sie class="ignore", um Ihre Eingabe.
- Yep - das ist ärgerlich - kann nicht glauben, dass dies noch nicht behoben wurde
- Beachten Sie, dass, wie bereits in den bug-link in Bruno ' s Antwort, der Fehler tritt nur mit $(someElements).valid() - die Validierung, die Auftritt, während ein Formular Einreichen, beschwert sich nicht über diese Felder! Auch sind Sie nicht als fehlerhaft gekennzeichnet, in meiner Erfahrung. Definitiv ein bug in der validate plugin.
- sehen Sie alle bei jedem Modell mit dem besten Beispiel-jquery-validation-online an unten angegebene Adresse : position-relative.net/creation/formValidator/demos/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint dies ein bug in diesem plugin.
Wenn es behoben durch den Austausch der Methode durch eine eigene Implementierung mit dem folgenden code:
Lief in dieses problem, mich auf einige komplexe Formen, die ich geschrieben hatte...
Meine Lösung ist einfach, um meine eigene maxlength Methode, die ich kann 'maxLen', das funktioniert fast genau wie die Standard-Methode, nur unter einem anderen Namen. Fügen Sie diesen über Ihre wichtigsten validieren call ($("#mainform").validate({}); oder was auch immer Ihre form genannt wird).
Sobald Sie das getan haben, können Sie eine Regel hinzufügen, etwa so:
Erste, ich nehme an, dass der Eingang hat ein "name" - Attribut und wird einfach nicht angezeigt in deinem Beispiel? Wenn nicht, versuchen, und es kann das Problem beheben.
Zweiten, haben Sie versucht, explizit das Feld nicht erforderlich, aber eine maxlength-der validator-Objekt? Zum Beispiel:
$('#formId').validate(...);