Überprüfen Sie mehrere Felder mit den gleichen Namen
Hier ist ein Teil meiner HTML:
<div class="editor-field">
<input id="ImmobilizationLength_1" name="ImmobilizationLength" type="text" value="">
</div>
....
*HTML Code*
....
<div class="editor-field">
<input id="ImmobilizationLength_2" name="ImmobilizationLength" type="text" value="">
</div>
Wenn ich prüfen will, diese Felder mit jQuery, füge ich den Regeln:
ImmobilizationLength: { required: true, digits: true }
Wenn das Formular abgeschickt wird, wird nur die erste der ImmobilizationLength Feld überprüft wird.
Lese ich auf stackoverflow eine andere Frage, die empfiehlt:
$('[name="ImmobilizationLength"]').each(function(){
$(this).rules("add", { required: true, digits: true } );
});
Aber, wenn ich das mache, bekomme ich diesen Fehler:
TypeError: Cannot read property 'nodeName' undefined
Wie kann ich tun?
- ids sollten immer eindeutig sein und Namen innerhalb der Formen sollte auch. Warum nicht Sie machen Sie einzigartig und ändern Sie die jquery-entsprechend?
- Laurence ist korrekt - id ' s gemeint sind, werden auf einer Seite eindeutig. Man könnte ein class-Selektor anwenden-Validierung, um ähnliche Elemente. Die Klasse kann alles sein, es muss nicht tatsächlich existieren in einem stylesheet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie keine Elemente mit der gleichen id-Selektoren werden nicht funktionieren
auch wenn Sie den gleichen Namen haben, wenn Sie post die Daten nicht korrekt sein. es sei denn, Sie verwenden namearray
wie
beispielsweise
Basierend auf die Kommentare sobald Sie ändern Sie die Id, die Sie verwenden konnte, beginnt mit dem Selektor
Ich würde Ihnen geben würde, Klasse und Herrschaft basiert auf Kategorie Namen
Laut W3Schools, ID müssen eindeutig sein:
"Das id-Attribut gibt eine eindeutige id für ein HTML-element. Die id muss eindeutig sein innerhalb des HTML-Dokuments."
http://www.w3schools.com/tags/att_standard_id.asp
Dein Javascript funktioniert nicht wie erwartet, da das markup ist ungültig. Wenn das markup korrigiert wurde (durch die Schaffung von eindeutigen IDs, und Optional das hinzufügen einer Klasse), Sie werden leicht in der Lage zu überprüfen, Ihre einzigartige Felder.
Bitte beachten Sie, dass im Gegensatz zu IDs, Klassen wiederholt werden kann. Namen sollten nicht wiederholt werden, da die Werte der einzelnen Felder überschreiben sich gegenseitig, wenn das Formular abgeschickt wird.
EDIT:
Die doppelten Namen sind immer noch ein problem. Wenn Sie verwenden möchten, jede(), benötigen Sie eine Kennung, die dupliziert werden können, wie Klasse.
werden
Ist hier, wie ich gelöst habe ein ähnliches problem ich hatte. Wenn anstelle der Validierung, ich war dynamisch Einstellung der Werte. Aber die gleiche Logik angewendet werden können:
In der HTML:
Hoffe, das hilft!