Bitte beachten Sie den folgenden Code ein:Escaping eckige Klammern in Namen des Elements, wenn das Attribut mit Equals Selector
$('[name='+temp[i][0]+']').prev().addClass('form_error');
wo Temp [i] [0] ein Array-Element den Namen eines Formularfeldes hält die enthält eckige Klammern (wie es ein Checkbox-Array darstellt), name_of_field[]
.
Damit dies funktioniert, weiß ich, dass ich die eckigen Klammern im Namen des Formularfelds entfliehen sollte. Da ich ein Neuling für reguläre Ausdrücke bin, kann ich es nicht richtig verstehen. Kann mir jemand den richtigen Code zur Verfügung stellen? Danke vielmals.
Dies funktioniert, aber es sollte beachtet werden, dass die Verwendung der '[' und ']' Zeichen in einem HTML-Namen oder einer ID ungültig ist (und daher nicht garantiert, dass sie weiter funktioniert): http://www.w3.org /TR/html4/types.html#type-name –
@Vincent: True, sie sind nicht Standard, aber sie wurden * seit Ewigkeiten * verwendet, um Daten als "Array" an PHP zu senden. [In HTML5 kann 'name' grundsätzlich irgendeinen Wert haben, so dass es garantiert funktioniert] (http://www.w3.org/TR/html5/attributes-common-to-form-controls.html#attributes-common -to-form-controls): * "Jeder nicht leere Wert für' name' ist erlaubt, aber die Namen '_charset_ "und' isindex 'sind speziell [...]" *. –
@Felix: Ich habe verschiedene RegEx-Lösungen im Internet (unter anderem bei SO) getestet, aber da meine RegEx-Fähigkeiten (noch) sehr schlecht sind, muss ich Fehler bei der Implementierung in meinem eigenen Code machen: Danke für Ihre Hilfe ich raus. Funktioniert einwandfrei :) –