LeKuchen: Selbstgebastelte Attribute

Hallo zusammen,

ich habe eine Webanwendung, die automatisch Formulare erzeugt. Für die Formulare werden auch Javascriptplausibilitäten erzeugt, indem in HTML z.B. hinterlegt wird:

<div id="error_01" controltovalidate="input_01" validatortype="comparevalidator" type="integer" operator="datatypecheck">... Fehlermeldung ...</div>

Über Javascript/CSS-Manipulation wird dann die Fehlermeldung entsprechend ein- oder ausgeblendet.

Das Problem dabei ist, dass der HTML-Validator (HTML 4.01 Transitional) natürlich meckert, dass er die selbstgebastelten Attribute nicht kennt. Ich würde aber gerne fehlerfreien HTML-Code schreiben, daher:
Wie kann ich selbstgebastelte Attribute verwenden, ohne dass es ein Markup-Fehler ist?

Gruss
LeKuchen

  1. Hi,

    Wie kann ich selbstgebastelte Attribute verwenden, ohne dass es ein Markup-Fehler ist?

    indem Du sie mit JavaScript der Element-Node hinzufügst. Alternativ kannst Du XML-Namespaces benutzen, was ich Dir aber wegen vorhersehbarer Probleme mit den verschiedenen Browsern nicht empfehlen möchte, zumal es eh um eine JavaScript-Aktion geht.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheetah,

      bei nicht vorhandenem/abgeschaltetem Javascript
      läuft die Plausibilitätsprüfung aber auch voll serverseitig - ich will ja niemanden aussperren...;o) Somit sollte ich die Attribute auch mit abgeschaltetem JS bekannt machen können.

      In diesem Fall (ohne JS) kann ich die Attribute dann schlecht dem Element Node hinzufügen....

      XML-Namespace würde bedeuten, dass ich ein eigenes HTML-Schema hinterlege?

      Gruss
      LeKuchen

      1. Hi,

        Hallo Cheetah,

        wer? ;-)

        bei nicht vorhandenem/abgeschaltetem Javascript
        läuft die Plausibilitätsprüfung aber auch voll serverseitig - ich will ja niemanden aussperren...;o)

        Ich hätte nichts anderes von Dir erwartet *g*

        In diesem Fall (ohne JS) kann ich die Attribute dann schlecht dem Element Node hinzufügen....

        Was für einen Nutzen hätten sie denn bei deaktiviertem JavaScript?

        XML-Namespace würde bedeuten, dass ich ein eigenes HTML-Schema hinterlege?

        Nein, HTML bleibt HTML. Du verwendest das xmlns-Attribut mit einem Namespace, um diesen bekannt zu machen; und wahrscheinlich wird Dich niemand beißen, wenn hinter der angegebenen URL nichts zu finden ist. Das ist dabei nämlich nicht notwendig - die URL (bzw. URN) dient der Identifizierung, mehr nicht.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo Cheatah,

          wer? ;-)

          ups, entschuldige den Freud'schen Verschreiber, musste aber wohl unterbewußt an Tarzans Affen denken (Zitat: Cheetah! trallala tak tack!!),  an MacOSX, den ganzen Streichelzoo mit Tigern, Python und so...;o)

          Natürlich machen bei abgeschaltetem JS die Angaben im HTML keinen Sinn mehr, aber es gibt keine Vorangegangene JS-Detection.

          Nein, HTML bleibt HTML. Du verwendest das xmlns-Attribut mit einem Namespace, um diesen bekannt zu machen; und wahrscheinlich wird Dich niemand beißen, wenn hinter der angegebenen URL nichts zu finden ist. Das ist dabei nämlich nicht notwendig - die URL (bzw. URN) dient der Identifizierung, mehr nicht.

          Hmmm, verstehe...ich tendiere aber gerade dazu, die Markupfehler Markupfehler sein zu lassen - imho sind 7(!) Fehler auf einer Seite ja nicht gerade viel...
          Da ist dann mein Ehrgeiz, fehlerfreien Markupcode zu schreiben, dahin.

          Gruss
          LeKuchen

          1. Hi,

            wer? ;-)
            ups, entschuldige den Freud'schen Verschreiber, musste aber wohl unterbewußt an Tarzans Affen denken (Zitat: Cheetah! trallala tak tack!!),  an MacOSX, den ganzen Streichelzoo mit Tigern, Python und so...;o)

            ... oder kurz: an das englische Wort für Gepard. Ist mir nicht neu ;-)

            Natürlich machen bei abgeschaltetem JS die Angaben im HTML keinen Sinn mehr, aber es gibt keine Vorangegangene JS-Detection.

            Wozu brauchst Du eine Detection? Wenn JavaScript abgeschaltet ist, macht es auch nichts, dass kein JavaScript die Attribute hinzufügen kann. Simpler als das kann es nicht sein: Just do it, ignoring the consequences.

            Hmmm, verstehe...ich tendiere aber gerade dazu, die Markupfehler Markupfehler sein zu lassen - imho sind 7(!) Fehler auf einer Seite ja nicht gerade viel...

            Es gibt immer nur einen Fehler zu viel. Und zwar so lange, bis es keinen einen Fehler mehr gibt.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              Wozu brauchst Du eine Detection? Wenn JavaScript abgeschaltet ist, macht es auch nichts, dass kein JavaScript die Attribute hinzufügen kann. Simpler als das kann es nicht sein: Just do it, ignoring the consequences.

              Jein - ich dachte, Du schlägst vor, die divs mit den Attributen  erst garnicht in HTML auszugeben, wenn Javascript disabled ist. Dazu bräuchte ich aber eine Detection, da die divs mit den Attributen nicht vom Javascript erzeugt werden, sondern vorher serverseitig, d.h. die sind immer da, nur die clientseitige Prüfung findet bei abgeschaltetem JS nicht statt (onblur bzw. onload Event).

              Es gibt immer nur einen Fehler zu viel. Und zwar so lange, bis es keinen einen Fehler mehr gibt.

              Ich weiss, dass Du Recht hast, aber ich kämpfe noch mit meinem inneren Schweinehund... (Aufwand > Ergebnis) ... v.a. weil meinen Chef valider HTML-Code leider garnicht interessiert. *Don-Quijote-traumatisiert*

              Gruss
              LeKuchen

              1. Hi,

                Jein - ich dachte, Du schlägst vor, die divs mit den Attributen  erst garnicht in HTML auszugeben, wenn Javascript disabled ist.

                nö, die Elemente fasst Du nicht an. Du gibst ihnen lediglich mit JavaScript die Attribute.

                Ich weiss, dass Du Recht hast, aber ich kämpfe noch mit meinem inneren Schweinehund... (Aufwand > Ergebnis)

                Wie gesagt, der Aufwand könnte kaum geringer sein.

                v.a. weil meinen Chef valider HTML-Code leider garnicht interessiert.

                Natürlich nicht. Aber ihn interessiert, wie die Seiten genutzt werden können - also beispielsweise ob sie in heutigen und morgigen Browsern wie gewünscht aussehen, oder ob Suchmaschinen die Inhalte richtig bewerten können. Solche Dinge können frühestens dann gewährleistet werden, wenn die Seiten nicht von vornherein kaputt sind. Er wird ja wohl auch nicht mit einem Auto in der Gegend rumgurken, das lediglich auf einer Teststrecke funktioniert hat und von dem keiner weiß, wie es auf einer Autobahn oder in Serpentinen zurande kommt. Diesbezüglich haben der Gesetzgeber und die Industrie strenge Grundlagen definiert, die ein Auto erfüllen muss - ähnlich wie BITV - und führen sehr, sehr teure Crashtests durch.

                Die Crashtests von Internetseiten sind kostenlos, und Defekte leicht repariert.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
              2. Hi,

                v.a. weil meinen Chef valider HTML-Code leider garnicht interessiert.

                Da HTML-Browser ihnen unbekannte Atribute per definitionem ignorieren sollen, hat dein Chef in diesem Punkt auch absolut Recht.

                Es wäre ohnehin reichlich dumm, wenn ein Browser eine HTML-Seite nur desegen nicht mehr darstellen könnte, weil es eine neue HTML-Version mit neuen Tags und Attributen gäbe, die er noch nicht kennt.

                HTML-Seiten kann man prinzipiell auch noch mit einem Browser der 1. Generation nutzen - das hat seinen Grund.

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!