Form, Input, Button - Warum muß der Button mit? – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 05:57:07 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789515#m1789515 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789515#m1789515 <p>Ein kleines Problem, kurz erklärt.</p> <p>Php stellt mittels sql eine List aller Menschen zusammen, ein Shortcut-Button soll diese Auswahl auf alle blauäugigen mit sonnigem Gemüt und Schuhgröße 37 reduzieren. Mein Script sendet bei der Eingabe des Textes aber auch immer (nur) den ersten Button mit. Wie kann man das elegant verhindern/abfangen?</p> <p>Im Beispiel werden die Daten nicht erhalten, was in der Realität natürlich anders ist.</p> <p>Vielen Dank für Eure Hilfe</p> <pre><code class="block language-html"><span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span> <span class="token attr-name">lang</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>de<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>head</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token prolog"><?php var_dump($_POST); ?></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">action</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Formular.php<span class="token punctuation">"</span></span> <span class="token attr-name">method</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post<span class="token punctuation">"</span></span> <span class="token attr-name">enctype</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>multipart/form-data<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>select</span> <span class="token special-attr"><span class="token attr-name">onchange</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span><span class="token punctuation">"</span></span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Dropdown<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Auswahl 1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Auswahl 1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Auswahl 2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Auswahl 2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>select</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlA<span class="token punctuation">"</span></span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlA<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> Komplexer Filter (A) <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlB<span class="token punctuation">"</span></span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlB<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> Komplexer Filter (B) <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>text<span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Texteingabe<span class="token punctuation">"</span></span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Ihre Eingabe bitte<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">onchange</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">'</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span><span class="token punctuation">'</span></span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> </code></pre> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 06:01:58 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789516#m1789516 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789516#m1789516 <p>Nachtrag</p> <p>Nur das Input-Tag zeigt dieses Verhalten.</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 06:17:48 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789519#m1789519 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789519#m1789519 <p>Hallo,</p> <blockquote> <p>Php stellt mittels sql eine List aller Menschen zusammen, ein Shortcut-Button soll diese Auswahl auf alle blauäugigen mit sonnigem Gemüt und Schuhgröße 37 reduzieren.</p> </blockquote> <p>Glück gehabt, ich bin nicht dabei. </p> <blockquote> <p>Mein Script sendet bei der Eingabe des Textes aber auch immer (nur) den ersten Button mit. Wie kann man das elegant verhindern/abfangen?</p> </blockquote> <p>Ich verstehe noch nicht, wozu du das brauchst. Aber beim Formularversand mit HTML ist festgelegt, dass nur der "erfolgreiche" Submit-Button auch übermittelt wird. Das ist derjenige, der angeklickt/ausgelöst wurde - oder der erste, wenn das Formular anders, z.B. durch Drücken der Enter-Taste in einem input-Feld abgeschickt wurde.</p> <p>Wenn du bestimmte vorbelegte Werte bei der Weiterverarbeitung alle brauchst, bietet es sich an, diese in einem hidden input mitzuschleifen. Oder sie gar nicht erst wieder zum Client zu schicken, sondern gleich in PHP auf dem Server zu behalten - z.B. in einer Session.</p> <p>Übrigens: Die Leerzeichen um die '=' bei deinen Attributwerten sind zwar erlaubt, aber ungewöhnlich und machen das Markup daher für mich(!) schwerer lesbar. YMMV.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 07:59:56 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789524#m1789524 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789524#m1789524 <p>Moin Hartmut,</p> <blockquote> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">action</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Formular.php<span class="token punctuation">"</span></span> <span class="token attr-name">method</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post<span class="token punctuation">"</span></span> <span class="token attr-name">enctype</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>multipart/form-data<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> </blockquote> <p>Wofür brauchst du hier den expliziten enctype? PHP kommt doch auch mit dem Default <code>application/x-www-form-urlencoded</code> klar.</p> <blockquote> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>select</span> <span class="token special-attr"><span class="token attr-name">onchange</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span><span class="token punctuation">"</span></span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Dropdown<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Auswahl 1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Auswahl 1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Auswahl 2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Auswahl 2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>select</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlA<span class="token punctuation">"</span></span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlA<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> Komplexer Filter (A) <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlB<span class="token punctuation">"</span></span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>VorauswahlB<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> Komplexer Filter (B) <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>text<span class="token punctuation">"</span></span> <span class="token attr-name">name</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Texteingabe<span class="token punctuation">"</span></span> <span class="token attr-name">value</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">"</span>Ihre Eingabe bitte<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">onchange</span> <span class="token attr-value"><span class="token punctuation attr-equals">=</span> <span class="token punctuation">'</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span><span class="token punctuation">'</span></span></span><span class="token punctuation">/></span></span> </code></pre> </blockquote> <p>Hier sind vier Elemente, die jeweils ihren eigenen Submit direkt bei der Zustandsänderung triggern – und es sind drei verschiedene Eingabeelemente (<code>select</code>, <code>button</code>, <code>input type=text</code>) – ist das vom Standpunkt des User Experience verständlich? Dazu kommen noch fehlende <code>label</code>, so dass nicht klar ist, welche Funktion die Elemente haben. Und bei der Texteingabe fällt auf, dass hier der <code>value</code> als <code>placeholder</code> missbraucht wird.</p> <p>Viele Grüße<br> Robert</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 10:29:50 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789530#m1789530 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789530#m1789530 <p>Hallo Hartmut,</p> <blockquote> <p>Mein Script sendet bei der Eingabe des Textes aber auch immer (nur) den ersten Button mit. Wie kann man das elegant verhindern/abfangen?</p> </blockquote> <p>Indem Du nicht die ENTER Taste drückst, um den Wert zu bestätigen, sondern TAB.</p> <p>Grund: ENTER betätigt automatisch den ersten Submitbutton im Form, und dieser Submit kommt dem Submit zuvor, den Du in deinem Change-Handler vornimmst.</p> <p>Spaß beiseite, das hilft Dir natürlich nicht wirklich. Aber das, was ich als Grund genannt habe, ist der Auslöser deines Problems.</p> <p>Da Du auf jedem Eingabeelement ein Auto-Submit hast, willst Du offenbar von jedem Eingabeelement isoliert benachrichtigt werden. Oder zumindest möchtest Du in PHP erfahren, welches Eingabeelement den Autosubmit auslöste. Das kann man mit JavaScript und versteckten Eingabefeldern lösen, aber die einfachste Vorgehensweise dürfte sein, drei Forms zu machen.</p> <p>Eins für das <select><br> Eins für die beiden Buttons<br> Eins für das Textfeld.</p> <p>Dann kann es zu keinen unerwünschten Querbeziehungen kommen.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 06:51:10 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789521#m1789521 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789521#m1789521 <p>Das entspricht meiner Beobachtung, aber wie kann ich im php-Bereich feststellen, was den „submit“ ausgelöst hat? Schließlich will ich den Filter nicht auslösen, wenn ich im Eingabefeld „Peter“ eingebe, um meine Auswahl weiter einzuschränken?</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 07:36:57 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789522#m1789522 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789522#m1789522 <p>Moin Hartmut,</p> <blockquote> <p>Das entspricht meiner Beobachtung, aber wie kann ich im php-Bereich feststellen, was den „submit“ ausgelöst hat?</p> </blockquote> <p>Du kannst allen Submit-Buttons den gleichen Namen, aber unterschiedliche Werte geben.</p> <blockquote> <p>Schließlich will ich den Filter nicht auslösen, wenn ich im Eingabefeld „Peter“ eingebe, um meine Auswahl weiter einzuschränken?</p> </blockquote> <p>Dann entferne dort doch einfach <code>onchange = 'this.form.submit()'</code>. Du möchtest wahrscheinlich, dass das Formular durch Drücken von ENTER oder RETURN abgesendet wird. Dafür brauchst du den Eventhandler meines Wissens gar nicht.</p> <p>Viele Grüße<br> Robert</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 07:52:03 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789523#m1789523 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789523#m1789523 <p>Hallo,</p> <blockquote> <p>Du kannst allen Submit-Buttons den gleichen Namen, aber unterschiedliche Werte geben.</p> </blockquote> <p>ja, das kann er natürlich. Und dann?</p> <blockquote> <blockquote> <p>Schließlich will ich den Filter nicht auslösen, wenn ich im Eingabefeld „Peter“ eingebe, um meine Auswahl weiter einzuschränken?</p> </blockquote> <p>Dann entferne dort doch einfach <code>onchange = 'this.form.submit()'</code>. Du möchtest wahrscheinlich, dass das Formular durch Drücken von ENTER oder RETURN abgesendet wird.</p> </blockquote> <p>Das ist im Moment mein Problem: Ich habe noch nicht verstanden, was Hartmut tatsächlich erreichen möchte. Seine Beschreibung und/oder sein Beispiel geben mir nicht geug Info.</p> <blockquote> <p>Dafür brauchst du den Eventhandler meines Wissens gar nicht.</p> </blockquote> <p>Das ist korrekt.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 09:31:09 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789526#m1789526 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789526#m1789526 <p>Und alle drei oder vier Elemente sollen dazu dienen, die Daten zu filtern, was auch gut funktioniert. Um das Beispiel mit Leben zu füllen ;-) Per Dropdown wird zwischen Männlein, Weiblein, Sonstige unterschieden Per Textfeld wird der Nachname „Meyerdierks“ gesucht und die Schalter finden dann die Blondschöpfe mit Sternzeichen Löwe (oder so). Das Dropdown funktioniert, liefert nur seinen Inhalt und den des Textfeldes. Die Buttons funktionieren, liefern den jeweils gedrückten Button, sowie den Inhalt von Dropdown und Textfeld. Das Textfeld liefert seinen und den Inhalt des Dropdown UND zusätzlich das Ergebnis des ersten Buttons :-( Damit bekomme ich automatisch alle „Meyerdierks“ mit blonden Haaren und Sternzeichen Löwe :-(</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 09:42:18 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789527#m1789527 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789527#m1789527 <p>Moin Hartmut,</p> <blockquote> <p>Und alle drei oder vier Elemente sollen dazu dienen, die Daten zu filtern, was auch gut funktioniert.</p> </blockquote> <p>So gut kann es dann doch nicht funktionieren, sonst fragtest du hier nicht um Rat </p> <blockquote> <p>Das Textfeld liefert seinen und den Inhalt des Dropdown UND zusätzlich das Ergebnis des ersten Buttons :-(</p> </blockquote> <p>Was passiert denn, wenn du</p> <ul> <li>auf das automatische Absenden des Formulars in den Eventhandlern verzichtest</li> <li>aus den Submit-Buttons „normale Buttons“ machst?</li> </ul> <p>Viele Grüße<br> Robert</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 09:52:44 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789529#m1789529 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789529#m1789529 <p>Hallo,</p> <blockquote> <p>Und alle drei oder vier Elemente sollen dazu dienen, die Daten zu filtern, was auch gut funktioniert.</p> </blockquote> <p>mehr oder weniger. </p> <p>Ich bekomme aber den Eindruck, du hast ein grundsätzliches Verständnisproblem mit der Formularverarbeitung. Du lässt bei jeder Nutzer-Aktion das gesamte Formular absenden (und ich schließe mich Roberts Zweifeln an der Sinnhaftigkeit an).</p> <p>Formular absenden heißt aber: Alle darin enthaltenen "erfolgreichen" <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> Controls mit ihren aktuellen Werten. Das sind "gewöhnliche" inputs, selects, hidden inputs; bei Radiobuttons und Checkboxen nur die ausgewählten, und bei Submit-Buttons derjenige, der das Formular abgeschickt hat. Das ist per Default der erste.</p> <blockquote> <p>Per Dropdown wird zwischen Männlein, Weiblein, Sonstige unterschieden<br> Per Textfeld wird der Nachname „Meyerdierks“ gesucht und die Schalter finden dann die Blondschöpfe mit Sternzeichen Löwe (oder so).</p> </blockquote> <p>Dann wären Checkboxen anstatt der Buttons vieleicht die passenderen Elemente. Und auf das automatische Absenden nach jeder Eingabe würde ich auch verzichten. Ich würde das als Ärgernis empfinden.</p> <blockquote> <p>Das Dropdown funktioniert, liefert nur seinen Inhalt und den des Textfeldes.</p> </blockquote> <p>Und den ersten Button.</p> <blockquote> <p>Die Buttons funktionieren, liefern den jeweils gedrückten Button, sowie den Inhalt von Dropdown und Textfeld.</p> </blockquote> <p>Works as specified.</p> <blockquote> <p>Das Textfeld liefert seinen und den Inhalt des Dropdown UND zusätzlich das Ergebnis des ersten Buttons :-(</p> </blockquote> <p>Works as specified.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>In der Spec ist tatsächlich von <em>successful controls</em> die Rede. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 10:51:32 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789532#m1789532 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789532#m1789532 <p>Hallo Rolf,</p> <blockquote> <blockquote> <p>Mein Script sendet bei der Eingabe des Textes aber auch immer (nur) den ersten Button mit. Wie kann man das elegant verhindern/abfangen?</p> </blockquote> <p>Indem Du nicht die ENTER Taste drückst, um den Wert zu bestätigen, sondern TAB.</p> </blockquote> <p>auch dann würde AFAIK das Auto-Submit den erstbesten Submit-Button mitsenden.</p> <blockquote> <p>Da Du auf jedem Eingabeelement ein Auto-Submit hast, willst Du offenbar von jedem Eingabeelement isoliert benachrichtigt werden. Oder zumindest möchtest Du in PHP erfahren, welches Eingabeelement den Autosubmit auslöste.</p> </blockquote> <p>Aber das erscheint mir nicht sinnvoll. Es sind doch (im Beispiel) vier Controls, die alle ein gemeinsames Thema haben: Reduzieren einer Ergebnismenge durch Filter.</p> <blockquote> <p>aber die einfachste Vorgehensweise dürfte sein, drei Forms zu machen.</p> <p>Eins für das <select><br> Eins für die beiden Buttons<br> Eins für das Textfeld.</p> </blockquote> <p>Ich würde genau davon abraten, sondern zusammenhalten, was zusammengehört.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 12:45:10 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789543#m1789543 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789543#m1789543 <p>Hallo Martin,</p> <blockquote> <p>auch dann würde AFAIK das Auto-Submit den erstbesten Submit-Button mitsenden.</p> </blockquote> <p>Nein. form.submit() sendet keinen Button. Hab ich probiert </p> <blockquote> <p>Ich würde genau davon abraten,</p> </blockquote> <p>Aber deine Begründung fordert das Gegenteil</p> <blockquote> <p>zusammenhalten, was zusammengehört.</p> </blockquote> <p>Exakt. Deswegen trennen. Denn sie gehören nicht zusammen. Jedes der vier Controls löst eine eigene Aktion aus und benötigt die Daten der anderen Controls nicht. Im Gegenteil. Die Daten der anderen Controls stören und verhindern, dass Du den Auslöser der Anforderung erkennst.</p> <p>Zumindest verstehe ich Toni - äh - Hartmut so.</p> <p>Deswegen finde ich deine Idee mit den Checkboxen auch nicht gut. Was nützt es, Vorauswahl A <strong>und</strong> Vorauswahl B anzukreuzen und dann noch einen Text einzugeben? Das ist doch unabhängig voneinander, oder?</p> <p>Aber vielleicht habe ich ja auch was falsch verstanden; dazu müsste Hartmut was sagen.</p> <p><em>Wie unabhängig sind diese Eingabeelemente voneinander? Gibt es am Server Verarbeitungen, die die Inhalte von mehr als einem der Eingabeelemente benötigen?</em></p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 13:06:35 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789544#m1789544 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789544#m1789544 <p>Hallo Rolf,</p> <blockquote> <blockquote> <p>auch dann würde AFAIK das Auto-Submit den erstbesten Submit-Button mitsenden.</p> </blockquote> <p>Nein. form.submit() sendet keinen Button. Hab ich probiert </p> </blockquote> <p>dann habe ich entweder die Spec oder frühere eigene Versuche falsch in Erinnerung.</p> <blockquote> <blockquote> <p>Ich würde genau davon abraten,</p> </blockquote> <p>Aber deine Begründung fordert das Gegenteil</p> <blockquote> <p>zusammenhalten, was zusammengehört.</p> </blockquote> <p>Exakt. Deswegen trennen. Denn sie gehören nicht zusammen. Jedes der vier Controls löst eine eigene Aktion aus und benötigt die Daten der anderen Controls nicht. Im Gegenteil. Die Daten der anderen Controls stören und verhindern, dass Du den Auslöser der Anforderung erkennst.</p> </blockquote> <p>Ich verstehe es so, dass alle diese vier Controls Filter für eine DB-Abfrage sind. Die erwartete Funktion für mich als Nutzer wäre also: Ich trage alle meine Filterkriterien ein (select-Auswahl, Checkboxen anstatt Buttons wie schon vorgeschlagen, irgendein Freitext-Feld). Und <strong>dann</strong> klicke ich auf einen Submit-Button, der meinetwegen mit "Jetzt anwenden" oder "Aktualisieren" beschriftet ist und erwarte die Anzeige der entsprechend reduzierten Ergebnismenge.</p> <blockquote> <p>Zumindest verstehe ich Toni - äh - Hartmut so.</p> </blockquote> <p>Hmm. Ich nicht. Und wieso Toni? </p> <blockquote> <p>Deswegen finde ich deine Idee mit den Checkboxen auch nicht gut. Was nützt es, Vorauswahl A <strong>und</strong> Vorauswahl B anzukreuzen und dann noch einen Text einzugeben? Das ist doch unabhängig voneinander, oder?</p> </blockquote> <p>Kommt auf die eigentliche Anwendung an. Ich habe hier eine Windows-Anwendung vor mir (firmenintern), mit der ich auf Prüf- und Zertifizierungsdaten von unseren Produkten zugreifen kann. Da ist eine solche Kombination durchaus sinnvoll: Select für den Testplan-Status (Entwurf, Review, Freigegeben, Historisch), Checkboxen für "nur Artikel mit CE-Erklärung", "nur Artikel mit UL-Zulassung", ein Textfeld für Teile der Artikelbezeichnung.</p> <blockquote> <p>Aber vielleicht habe ich ja auch was falsch verstanden; dazu müsste Hartmut was sagen.</p> <p><em>Wie unabhängig sind diese Eingabeelemente voneinander? Gibt es am Server Verarbeitungen, die die Inhalte von mehr als einem der Eingabeelemente benötigen?</em></p> </blockquote> <p>Guter Punkt. Ich bin bisher ganz selbstverständlich davon ausgegangen, dass es nur ein Script ist, dass alle gesetzten Filter anwendet. Nacheinander, so wie Hartmut es realisiert hat; aber ich gehe davon aus, dass auch mehrere Kriterien gleichzeitig (also mit nur einem Aufruf) möglich sind.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 13:16:17 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789545#m1789545 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789545#m1789545 <p>Hi,</p> <blockquote> <blockquote> <p>Zumindest verstehe ich Toni - äh - Hartmut so.</p> </blockquote> </blockquote> <blockquote> <p>Hmm. Ich nicht. Und wieso Toni? </p> </blockquote> <p>Anspielung auf Toni Kroos, Fußball-Nationalspieler.</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 13:18:30 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789547#m1789547 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789547#m1789547 <p>Hallo Martin,</p> <blockquote> <p>Und dann klicke ich auf einen Submit-Button</p> </blockquote> <p>Das ist ein Unterschied in der Bedienphilosophie. Antragsformular ausfüllen und einreichen vs "Mach das. JETZT!"</p> <p>Die Eventhandler mit form.submit deuten auf letzteres hin.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 13:26:43 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789548#m1789548 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789548#m1789548 <p>Hallo,</p> <blockquote> <blockquote> <p>Und wieso Toni? </p> </blockquote> <p>Anspielung auf Toni Kroos, Fußball-Nationalspieler.</p> </blockquote> <p>ah, danke. Sagte mir bis eben nichts, deswegen ist mir der Name nicht aufgefallen.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 13:29:19 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789549#m1789549 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789549#m1789549 <p>Hi,</p> <blockquote> <blockquote> <p>Und dann klicke ich auf einen Submit-Button</p> </blockquote> <p>Das ist ein Unterschied in der Bedienphilosophie. Antragsformular ausfüllen und einreichen vs "Mach das. JETZT!"</p> <p>Die Eventhandler mit form.submit deuten auf letzteres hin.</p> </blockquote> <p>ja, ich weiß - und ich hatte auch schon kritisiert, dass <strong>ich</strong> als Nutzer das als sehr störend empfinden würde. Ich mag es nicht, wenn Computer schon anfangen zu arbeiten, während ich noch nicht mit dem Denken fertig bin.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Fische, die bellen, beißen nicht. </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 13:47:35 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789551#m1789551 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789551#m1789551 <p>Mal sehen, vielleicht hilft ja eine Abbildung, um zu verdeutlichen, warum ich es mit so vielen Submits versuche. Man stelle sich vor, Volkswagen, ein Golf soll es sein mit verschiedenen Features und ohne andere. Dazu dann natürlich nur die aktuellen Fahrzeuge, ein zusätzliches Suchwort und das ganze als registrierter Nutzer. all diese Faktoren haben Ihren Einfluss auf die Auswahl und tatsächlich läuft auch alles, nur die Textfelder nehmen immer den ersten Button mit.</p> <p><a href="/images/9b494c12-d428-11eb-9511-b42e9947ef30.JPG" rel="noopener noreferrer"><img src="/images/9b494c12-d428-11eb-9511-b42e9947ef30.JPG?size=medium" alt="Das neutralisierte Auswählmenü" loading="lazy"></a></p> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 14:42:23 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789554#m1789554 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789554#m1789554 <p>Hallo Hartmut,</p> <p>da scheine ich dann doch auf dem falschen Weg gewesen zu sein. Wenn ich oben "Volkswagen" und "Golf" auswähle und dann auf "Neuheiten" klicke, dann soll man nur die VW Golf-Neuheiten sehen?</p> <p>Das ist für den Nutzer und für deine Server ggf. eine mühsame Sache. Ich wähle "VW" aus. Es gibt einen Postback und der Server liefert eine Trefferseite für alle VWs. Dann wähle ich "Golf". Es gibt noch einen Postback und der Server liefert eine Trefferseite für alle VW Golf. Dann drücke ich Bremensien, und ich finde alle VW Golf Produkte, die brementypisch sind (z.B. ein VW-Symbol, das grün-weiß ist und nach Fisch riecht)?</p> <blockquote> <p>die Textfelder nehmen immer den ersten Button mit.</p> </blockquote> <p>Den Grund dafür hatte ich Dir um 12:29 genannt: Du drückst ENTER. Das tust Du bei den Dropdown-Selektionen nicht. Und das führt zu einem Submit des Forms über den ersten Button. Works as specified.</p> <p>Ist ein weiterer Button "Suchen", der an erster Stelle steht, da nicht doch sinnvoller als Auto-Postbacks? Dieser Button würde dann auch das Textfeldproblem lösen.</p> <p>Ohne diesen Button bräuchtest Du wohl eine Prise clientseitiges JavaScript, um die ENTER-Taste im Textfeld daran zu hindern, den Default-Submit auszulösen. Und zwar einen keydown-Handler am form. Ich mach's mal mit</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>suchform<span class="token punctuation">"</span></span> <span class="token attr-name">action</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#<span class="token punctuation">"</span></span> <span class="token attr-name">method</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>GET<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span><span class="token punctuation">></span></span>Suchbegriff:<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>br</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bar<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">onchange</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value javascript language-javascript"><span class="token keyword">this</span><span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shortcut<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>neu<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Neuheiten<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shortcut<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>jahr<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Rund ums Jahr<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shortcut<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fisch<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Bremensien<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript"> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"suchform"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">"keydown"</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>event<span class="token punctuation">.</span>code <span class="token operator">==</span> <span class="token string">"Enter"</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> event<span class="token punctuation">.</span><span class="token function">preventDefault</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> event<span class="token punctuation">.</span>target<span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Erweiterung: Ersetzt alle onchange-Attribute an den <select> </span> <span class="token comment">// und <input> Elementen</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"suchform"</span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">"change"</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> event<span class="token punctuation">.</span>target<span class="token punctuation">.</span>form<span class="token punctuation">.</span><span class="token function">submit</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span> </code></pre> <p>Das <script> Element muss hinter dem <form> stehen, sonst brauchst Du noch einen ready-Handler. Am besten setzt Du es an das Ende des <body> (aber VOR das </body> Tag).</p> <p>Der erste Eventhandler reagiert auf das Drücken der ENTER Taste und verhindert, dass das Form daraufhin seine Default-Aktion auslöst: den ersten Button als Default-Button setzen und sich dann abschicken. Statt dessen wird <strong>nur</strong> submitted.</p> <p>Für den zweiten Eventhandler kannst Du Dir überlegen, ob Du das willst. Events über onXxxx Attribute zu registrieren ist nämlich eigentlich etwas, was veraltet ist. Man verwendet addEventListener, um auf einem DOM Element einem Event eine Funktion zuzuordnen. Die bekommt dann auch gleich einen Parameter: das event-Objekt.</p> <p>Events werden nicht nur auf dem Objekt gemeldet, auf dem sie ausgelöst werden. Die meisten von ihnen "blubbern" in der Elementhierarchie nach oben, und das change-Event gehört dazu (unser <a href="https://wiki.selfhtml.org/wiki/JavaScript/DOM/Event/change" rel="nofollow noopener noreferrer">Wiki</a> weiß, welche Events blubbern und welche nicht). Wenn Du also bei jedem Eingabeelement auf change reagieren willst und das auch noch für alle Elemente gleich, dann kannst Du Dich auf das form setzen, die change-Events zu Dir hin blubbern lassen und sie dort behandeln. Das onchange-Attribut auf den <select> und <input> Elementen entfällt dann und dein HTML ist sauberer. Man nennt diese Technik <a href="https://wiki.selfhtml.org/wiki/HTML/Tutorials/Trennung_von_Inhalt,_Pr%C3%A4sentation_und_Verhalten#unaufdringliches_JavaScript" rel="nofollow noopener noreferrer">"unaufdringliches JavaScript"</a>.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Form, Input, Button - Warum muß der Button mit? Wed, 23 Jun 21 16:55:08 Z https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789562#m1789562 https://forum.selfhtml.org/self/2021/jun/23/form-input-button-warum-muss-der-button-mit/1789562#m1789562 <p>Herzlichen Dank, das gibt mir viele wertvolle Hinweise. Hartmut Kroos</p>