Moin,
Und verbergen sollte man das auch nicht per JavaScript (style.display), sondern die bereits im DOM vorhande Information per Stylesheet nutzen: [disabled] { display: none }.)
Das hängt von einer ganzen Reihe weicher Umstände ab. Aus meiner Sicht wäre der Satz mit "kann" statt mit "sollte" zutreffender formuliert.
das ist Ansichtssache - prinzipiell sagt beides dasselbe aus, nur dass "sollte" gleichzeitig eine Empfehlung einer der Möglichkeiten darstellt (die auch sehr subjektiv sein kann).
Immerhin verteilt man, wenn man allen Deinen Vorschlägen folgt, die Funktionsweise auf 1.) html, 2.) css 3.) javascript.
Was durchaus sinnvoll sein kann: Trennung von Inhalt (HTML), Präsentation (CSS) und dynamischem Verhalten (JS). Wenn die Aufteilung gut gemacht ist, kann jeder der drei Bereiche auch separat von den anderen betrachtet werden. Das erleichtert oft spätere Änderungen, Erweiterungen oder sogar schon das Debugging zu Beginn.
Was den Vorgang nicht wirklich transparenter macht wenn später mal jemand herausfinden muss was da eigentlich abläuft.
Da bin ich gegenteiliger Ansicht.
obj.required = document.getElementById('wechselYes').checked; obj.disabled = !document.getElementById('wechselYes').checked
ist weder wirklich kürzer noch wirklich schöner noch wirklich schneller.
Übersichtlicher und damit "schöner" allemal, finde ich. Bei der Formulierung sieht man sofort, was da zugewiesen wird. Ich finde das leichter zu erfassen und nachzuempfinden, als ein vergleichsweise "umständliches" if-else-Gefussel.
Und klarer ist es auch nicht denn viele müssen mehr darüber nachdenken was da geschieht als wenn in einem if-else-Konstrukt konkrete (einfach lesbare) Angaben erfolgen.
Was ist an Gunnars Vorschlag nicht konkret und einfach lesbar? Es ist eine simple Zuweisung, weiter nichts. Kein Nachdenken, kein Überlegen.
Du zeigst den Asterix nicht bei, sondern im Pflichtfeld und dann auch noch 1.) in der Schriftfarbe und 2.) auf der linken Seite an. 3.) bleibt er bei Eingaben dort stehen. Das kann und wird Benutzer verwirren.
Oder bei der Eingabe stören. Ebenso wie ich placeholder in Eingabefeldern als störend empfinde: Ein Hinweistext, der wieder verschwindet, wenn das Feld den Focus erhält? IMO nicht wirklich sinnvoll.
Einfacher und und in vielen Fällen zielführender wäre es, dass man, wenn man denn schon ausgerechnet einen Asterix anzeigen will (oder soll), dieses einfach mit <input placeholder='*'> macht
Nein, bitte nicht. Siehe oben.
oder den Platzhalter dynamisch mit Javascript setzt.
Er darf meinetwegen gern auch im Feld stehen - solange deutlich erkennbar ist, dass er nicht Teil der Eingabe ist, z.B. durch eine andere Textfarbe oder einen zusätzlichen Rahmen. Und der eigentliche Feldinhalt muss dann natürlich ein angemessenes padding bekommen, damit er den Stern nicht überlagert. Oder man positioniert das Pseudoelement mit dem Asterisk neben das eigentliche Eingabefeld.
So long,
Martin
Bei der Umsetzung von guten Ideen hapert es meist viel mehr an der Wolle als an der Könne.