Frage

Eine sehr allgemeine Frage.

Ich erzeuge dynamisch ein Formular, das in mehrere Ebenen von Registerkarten mit HTML / JavaScript aufgeteilt wird.

Ich möchte einige der Felder (diejenigen, die einen Wert der sich von einer globalen Vorlage haben) markieren mit einem Sternchen * Symbol mit CSS und Hintergrund-Bild.

Ein JS Feld durchläuft jedes Feld, vergleicht seinen Wert und setzt dafür eine CSS-Klasse, wenn nötig. So weit, so gut.

Jetzt zusätzlich, ich will nicht nur jedes geänderte Feld mit einem Stern markiert werden, sondern auch die Tab es ist in.

Weil ich es einfach lieben, ich mag das Element ID des Registerkarte speichern als Attribut irgendwo in jedem HTML-Tag-Feld (so etwas wie „parentTab“). Die JS-Funktion hebt dann das Feld und sein „parentTab“ Element (und vielleicht dass jemandes „parentTab“ als auch).

Mein erster Ansatz ist es, die „title“ -Attribut oder somethiong mißbrauchen zu speichern parentTab in. Natürlich, das ist schmutzig. Allerdings, wenn ich nur wild beliebige Attribute an den DIV oder INPUT-Tag hinzufügen, wird es nicht mehr bestätigen und ich fühle mich weniger als sicheren Zugriff auf diese Attribute - wer weiß, wie verschiedene Browser damit umgehen, und es wird in der Zukunft behandeln

Also meine Frage ist: Gibt es eine gültige, standardkonforme Art und Weise - ein Attribut von einer Art - zu speichern, beliebige Daten in HTML-Tags, für die weitere Verarbeitung von JavaScript

Natürlich könnte ich einen „parentTabs“ JS-Array erstellen und mit ihr geschehen. Aber es in der Eingabe speichert selbst würde so viel eleganter sein.

War es hilfreich?

Lösung

Sie könnten herausfinden, welches Registerkarten Element ein Feld gehört durch eine isChildOf Funktion, wie das Schreiben: http://jimkeller.blogspot.com/2008/07/jquery-ischildof-is-element-child-of.html

das DOM Mit diesem zur Arbeit wird immer mehr „elegant“ sein als die Daten in einigem benutzerdefinierten Format duplizieren.

Andere Tipps

Mit der Einführung von html5, können Sie Attribute verwenden, die mit data- starten , und sie werden noch bestätigen.

<input type="text" name="username" data-parentTab="tab1" value="non-default">

Das rel Attribut ist oft eine große gültige Wahl für Daten wie diese zu speichern.

In jQuery haben Sie den Daten-API für die Angelegenheit. http://docs.jquery.com/Internals/jQuery.data

Wenn Sie nicht jQuery verwenden, können Sie Ihre eigenen Tags hinzufügen und speichern alles drin. jeder wird Ihnen sagen, das ist nicht schön etc, aber alle großen Web-Firmen so tun. so werden Sie oben in einem großen Unternehmen beenden; -)

Ich mag, wie John Resig dies tat: einen Skript-Tag mit beliebigem Typ . Sein Beispiel ist etwa Templating, aber man konnte das wirklich für alles verwendet werden.

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