ash: JS, onChange

Hallo,

ich habe in einem Formular einen EventHandler eingebaut, "onChange". geht auch stressfrei. Nur:
lass ich meine Seite hier: http://validator.w3.org/ prüfen, spuckt er aus, dass es bei XHTML 1.0 Transitional diesen EventHandler nicht gibt. In der Dokumentation stand auch nur was von HTML 4.0.

Kann mir jmd sagen, wie ich das in XHTML richtig mache?

thx,
_ash

  1. hallo,

    Kann mir jmd sagen, wie ich das in XHTML richtig mache?

    Gar nicht. Aus der W3C-Empfehlung:
    <!ENTITY % events
     "onclick     %Script;       #IMPLIED
      ondblclick  %Script;       #IMPLIED
      onmousedown %Script;       #IMPLIED
      onmouseup   %Script;       #IMPLIED
      onmouseover %Script;       #IMPLIED
      onmousemove %Script;       #IMPLIED
      onmouseout  %Script;       #IMPLIED
      onkeypress  %Script;       #IMPLIED
      onkeydown   %Script;       #IMPLIED
      onkeyup     %Script;       #IMPLIED"
      >
    Damit hättest du die Liste der "erlaubten" Handler.

    Grüße aus Berlin

    Christoph S.

  2. Hallo,

    ich habe in einem Formular einen EventHandler eingebaut, "onChange". geht auch stressfrei. Nur:
    lass ich meine Seite hier: http://validator.w3.org/ prüfen, spuckt er aus, dass es bei XHTML 1.0 Transitional diesen EventHandler nicht gibt.

    Ja, wegen http://www.w3.org/TR/xhtml1/#diffs:

    ...
    4.2. Element and attribute names must be in lower case
    XHTML documents must use lower case for all HTML element and attribute names. This difference is necessary because XML is case-sensitive e.g. <li> and <LI> are different tags.
    ...

    ist "onChange" und "onchange" nicht mehr identisch. Bei HTML war das egal.

    Kann mir jmd sagen, wie ich das in XHTML richtig mache?

    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

    Bsp: für das SELECT-Element:
    <!ELEMENT select (optgroup|option)+>  <!-- option selector -->
    <!ATTLIST select
      %attrs;
      name        CDATA          #IMPLIED
      size        %Number;       #IMPLIED
      multiple    (multiple)     #IMPLIED
      disabled    (disabled)     #IMPLIED
      tabindex    %Number;       #IMPLIED
      onfocus     %Script;       #IMPLIED
      onblur      %Script;       #IMPLIED
      onchange    %Script;       #IMPLIED
      >

    Du musst das Attribut also nur klein schreiben.

    viele Grüße

    Axel

    1. hallo Axel,

      http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

      Falsche DTD. Er hat Transitional, siehe unten.

      Grüße aus Berlin

      Christoph S.

      1. Hallo,

        http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
        Falsche DTD. Er hat Transitional, siehe unten.

        Ja und? Was denkst Du, welche _Einschränkungen_ Transitional gegegenüber Strict hat?

        http://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-transitional.dtd_select

        viele Grüße

        Axel

        1. hallo Axel,

          Ja und? Was denkst Du, welche _Einschränkungen_ Transitional gegegenüber Strict hat?

          Was denkst du, was ich dir da jetzt antworten soll? *g*

          Ich habe halt die von mir korrekt angegebene DTD nicht vollständig durchgescrollt, sondern mich mit dem Abschnitt "Generic Attributes" zufriedengegeben. Dein Tip mit der Groß-/Kleinschreibung war schon richtig.

          Grüße aus Berlin

          Christoph S.

          1. Hi,

            Ich habe halt die von mir korrekt angegebene DTD nicht vollständig durchgescrollt, sondern mich mit dem Abschnitt "Generic Attributes" zufriedengegeben.

            Du hast die DTD grundsätzlich falsch gelesen. Über % events wird lediglich eine Konstante definiert, über die spätere Definitionen verkürzt werden können. So werden z.B. etwas weiter unten mit % special.pre die Elemente "br | span | bdo | map" zusammengefaßt und diese Konstante danach bei % special direkt weiterverwendet.

            freundliche Grüße
            Ingo