Paul: XHTML und readonly bei input Feldern

Moin,
das readonly bei input Feldern wird in xhtml ja so gesetzt:
readonly="readonly"

Die inputs erstelle ich dynamisch und die dazugehörigen readonlys auch:
<input type="mein_inputtype" ... readonly="meine_readonly_Variable">

Wenn mein_readonly_Variable den Wert 'readonly' hat, läuft alles wie gewollt (nur Lesezugriff auf das Feld).
Wie muss die Variable aussehen wenn das Feld beschreibbar sein soll?

Paul

  1. Wie muss die Variable aussehen wenn das Feld beschreibbar sein soll?

    Du lässt 'readonly="readonly"' ganz einfach weg?

    1. Hm, klar würde das gehen. Aber gibt es keinen anderen Wert für readonly als readonly?

      1. Hintergrund: ich baue mir z.B. Textareas per xslt zusammen ($readonly ist entweder 'readonly' oder ''):

        <textarea class="{$pflicht}" cols="20" rows="3" readonly="{$readonly}" >
         <xsl:attribute name="name"> <xsl:apply-templates mode="tm_path" select="." />
         </xsl:attribute>
         <xsl:value-of select="." />
        </textarea>

        Dann müsste ich das ganze zweimal machen nur das dann einmal das readonly="readonly" wegfällt. Nicht sehr schön. Bei class klappt ja auch...

        1. Hallo,

          Hintergrund: ich baue mir z.B. Textareas per xslt zusammen ($readonly ist entweder 'readonly' oder ''):

          ist halt falsch. Also nicht anwendbar.

          <textarea class="{$pflicht}" cols="20" rows="3" readonly="{$readonly}" >
          <xsl:attribute name="name"> <xsl:apply-templates mode="tm_path" select="." />
          </xsl:attribute>
          <xsl:value-of select="." />
          </textarea>

          Dann müsste ich das ganze zweimal machen nur das dann einmal das readonly="readonly" wegfällt. Nicht sehr schön. Bei class klappt ja auch...

          class ist kein boolsches Attribut und somit nicht vergleichbar.
          Das gesamte Attribut ist in Abhängigkeit eines Wertes einzufügen oder nicht - und der Typ der Variablen sollte Boolean sein. Gibt's bestimmt auch in XSLT.

          Freundliche Grüße

          Vinzenz

          1. class ist kein boolsches Attribut und somit nicht vergleichbar.
            Das gesamte Attribut ist in Abhängigkeit eines Wertes einzufügen oder nicht - und der Typ der Variablen sollte Boolean sein. Gibt's bestimmt auch in XSLT.

            Nachdem XSLT turingvollständig ist, muss das irgenwie umsetzbar sein ;)

      2. @@Paul:

        nuqneH

        Hm, klar würde das gehen. Aber gibt es keinen anderen Wert für readonly als readonly?

        Nein. In der DTD [XHTML1 §A] steht nämlich:

        <!ATTLIST input  
            
          readonly    (readonly)     #IMPLIED  
            
        
        >
        
        

        ([http://de.selfhtml.org/xml/dtd/attribute.htm#mit_alternativwert@title=SELFHTML] hilft beim Veständnis.)

        Entweder ein Element hat das Attribut @readonly mit dem Wert "readonly" oder es hat dieses Attribut nicht.

        Der Grund, warum überhaupt ein Wert angegeben werden muss, ist, dass es in XHTML keine Attributminimierung gibt [XHTML1 §4.5, http://de.selfhtml.org/html/xhtml/unterschiede.htm#leere_attribute@title=SELFHTML]

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
  2. Hallo,

    das readonly bei input Feldern wird in xhtml ja so gesetzt:
    readonly="readonly"

    Die inputs erstelle ich dynamisch und die dazugehörigen readonlys auch:
    <input type="mein_inputtype" ... readonly="meine_readonly_Variable">

    so wie ich das verstehe, machst Du das falsch.

    Wenn mein_readonly_Variable den Wert 'readonly' hat, läuft alles wie gewollt (nur Lesezugriff auf das Feld).

    Da es um ein boolsches Attribut geht, sollte Deine Variable keinen Text enthalten, sondern eine boolsche Variable sein. In Abhängigkeit des Wertes der Variablen schreibst Du das Attribut mit Wert in der Langform oder Du lässt das Attribut komplett weg.

    Viele Programmiersprachen bieten dafür neben der bedingten Ausführung einen für diese Aufgabe genau passenden Operator.

    Freundliche Grüße

    Vinzenz