Formular & Absatz (DOM)
luti
- html
0 Nick0 luti
0 Der Martin
0 luti0 Der Martin
0 luti0 Der Martin
0 luti
0 ChrisB
Hallo,
ich bin gerade etwas am Verzweifeln ... Ich bastle an einer Google-Maps Anwendung, in der per GDownloadUrl ein durch PHP generiertes XML-Dokument in die Karte eingebunden wird. Die XML-Informationen verarbeite ich dann in JavaScript weiter und gebe nach einigen Abfragen schließlich den Inhalt in einer Sidebar aus. Dabei wird je nach Fallunterscheidung dynamisch folgender Code erzeugt:
<p class="hervorheben">
text
<form action="..." style="display: inline;" method="post">
<input value=" Anfrage stellen " type="submit" />
</form>
</p>
Im JavaScript-Teil ist dieser Code noch korrekt, beim Parsen nach HTML wird der Code dann aber irgendwann verändert in:
<p class="hervorheben">
text
</p>
<form action="..." style="display: inline;" method="post">
<input value=" Anfrage stellen " type="submit" />
</form>
Lässt sich das irgendwie vermeiden? Ist es nicht zulässig, ein Formular in einen Absatz einzubinden???
Dank & Gruß,
luti
Kannst Du den Form-Tag nicht ausserhalb Deines p-Tags gestallten?
aus...
<p class="hervorheben">
text
</p>
<form action="..." style="display: inline;" method="post">
<input value=" Anfrage stellen " type="submit" />
</form>
wird dann...
<form action="..." style="display: inline;" method="post">
<p class="hervorheben">text</p>
<input value=" Anfrage stellen " type="submit" />
</form>
Hallo Nick,
Kannst Du den Form-Tag nicht ausserhalb Deines p-Tags gestallten?
Leider nicht: Der Aufbau ist ziemlich verwoben und so wird der Absatz samt Klasse erst im JavaScript erzeugt, das Formular aber schon im XML-Dokument. Ansonsten müsste ich das ganze Skript umstellen und deutlich mehr Daten über den XML-Request senden, das möchte ich gerne vermeiden.
Trotzdem danke!
luti
Hi,
<p class="hervorheben">
text
<form action="..." style="display: inline;" method="post">
<input value=" Anfrage stellen " type="submit" />
</form>
</p>
das ist ungültiges HTML.
> Ist es nicht zulässig, ein Formular in einen Absatz einzubinden???
Genau das. Ein Absatz (p-Element) darf nur Inline-Elemente enthalten. Daher wird ein validierender Parser das noch geöffnete p-Element vor dem Formular implizit schließen.
So long,
Martin
--
You say, it cannot be love if it isn't for ever.
But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
Hallo,
das ist ungültiges HTML.
Urgh.
Genau das. Ein Absatz (p-Element) darf nur Inline-Elemente enthalten. Daher wird ein validierender Parser das noch geöffnete p-Element vor dem Formular implizit schließen.
Die Angabe "display: inline;" macht das Form-Element also nicht zu einem _echten_ Inline-Element?
Dank & Gruß,
luti
Hi,
Die Angabe "display: inline;" macht das Form-Element also nicht zu einem _echten_ Inline-Element?
nein, CSS hat einen Einfluss auf die Art der Darstellung, aber nicht auf die Syntaxregeln von HTML. Du kannst einen Abfalleimer postgelb anmalen; er wird dadurch aber nicht zum Briefkasten, auch wenn er so aussieht.
Ciao,
Martin
Hallo Martin,
nein, CSS hat einen Einfluss auf die Art der Darstellung, aber nicht auf die Syntaxregeln von HTML. Du kannst einen Abfalleimer postgelb anmalen; er wird dadurch aber nicht zum Briefkasten, auch wenn er so aussieht.
Schade eigentlich. Denn aus einem Abfalleimer einen Parkscheinautomaten zu machen, das geht schon! Parkscheinautomat ;)
Dann muss ich wohl in den sauren Apfel beißen und das anders lösen ... Die von Nick vorgeschlagene Variante ist dann schon valide, oder?
Dank & Gruß, luti
Hallo,
aus einem Abfalleimer einen Parkscheinautomaten zu machen, das geht schon! Parkscheinautomat ;)
cool, solche Bilder mag ich!
Mir sind da bei meinem Sommerurlaub letztes Jahr (per Boot durch Berlin und MeckPomm) auch ein paar nette Dinge aufgefallen:
Reservierte Sitzplätze für Boote
Rodeln auf der Wiese
Nicht aus dem Feuerlöscher trinken
Dann muss ich wohl in den sauren Apfel beißen und das anders lösen ... Die von Nick vorgeschlagene Variante ist dann schon valide, oder?
Mal sehen ...
hmm, ja. Soweit man das beurteilen kann. Wenn du einen Strict-DOCTYPE verwendest, musst du das input-Element noch in ein Blockelement packen, z.B. auch in einen Absatz (in Strict dürfen Inline-Elemente keine direkten Kinder von body oder form sein).
So long,
Martin
Hallo,
Reservierte Sitzplätze für Boote
Rodeln auf der Wiese
Nicht aus dem Feuerlöscher trinken
sehr schön ;)
Ich bin jetzt dazu übergegangen einen Link statt des Formulares zu verwenden, dann muss ich kaum etwas im Code ändern ...
Hi,
Die Angabe "display: inline;" macht das Form-Element also nicht zu einem _echten_ Inline-Element?
MfG ChrisB