HTML: Standardwert des Kontrollkästchens

Lesezeit: 3 Minuten

Benutzeravatar von Franz
Franz

Wenn ich ein HTML-Formular mit einem aktivierten Kontrollkästchen sende, für das kein explizit definiertes Kontrollkästchen vorhanden ist valueChrome sendet on als Wert für dieses Feld.

Ist das das Standardverhalten? Oder was kann ich von anderen Browsern erwarten?

  • Ja, es ist Standard! Der überprüfte Wert wird sein an in jedem Browser

    – Bhuvan Rikka

    16. Oktober 2012 um 9:44 Uhr

  • @BhuvanRikka: Hast du eine Referenz?

    – Franz

    16. Oktober 2012 um 12:40 Uhr

  • Habe danach gesucht aber vergebens. Konnte keine finden. Sag nur aus eigener Erfahrung

    – Bhuvan Rikka

    16. Oktober 2012 um 12:42 Uhr

Die HTML 4.01-Spezifikation gibt den Wert eines aktivierten Kontrollkästchens nicht an. Es bezieht sich nur darauf, dass es „an“ ist, aber das ist nur Prosa und sagt nicht, was der Standardwert ist. Aber es heißt auch (unter der Beschreibung der input Element) dass die value Attribut ist in diesem Fall erforderlich.

So <input type=checkbox name=foo> hat ein undefiniertes Verhalten in Bezug auf den verwendeten Wert, obwohl dies in der Praxis von Browsern verwendet wird value=on als Standard.

  • Wenn der Browser gemäß HTML 5 über das DOM/IDL auf den Wert zugreift (oder wenn der Browser das DOM erstellt und Zugriff auf den Wert gewährt, z. B. Javascript), ist das Verhalten nicht undefiniert, sondern definiert. Der Wert ist “on” dann. Dieses Detail war in der Vergangenheit im HMTL DOM nicht spezifiziert, da die IDL diesen Fall nicht so detailliert spezifiziert hat. In der Praxis war dies technisch immer der Fall, während Sie schreiben, blieb aber undefiniert. stackoverflow.com/a/19094549/367456 – Gültiges HTML war in der Vergangenheit normalerweise erforderlich, um dieses Attribut zu schreiben (z. B. HTML 2.0), seit HTML 5 ist dies nicht mehr erforderlich.

    – hakre

    30. September 2013 um 12:54 Uhr

Benutzeravatar von hakre
hakre

HTML-lebender Standard spiegelt dies wider: Der Wert ist im Modus “default/on”, das heißt, sein Wert ist “on“, wenn kein Wertattribut angegeben ist. Von 4.10.7.1.16 Checkbox-Zustand (type=checkbox) – HTML Living Standard (September 2013):

[…]

Standard ein

Beim Erhalten, wenn das Element a hat value attribut, muss es den Wert dieses Attributs zurückgeben; Andernfalls muss die Zeichenfolge “on“. Beim Setzen muss es das Element setzen value Attribut auf den neuen Wert.

Dies ist ganz identisch auch Teil einer anderen HTML-Spezifikation, der W3C HTML 5. August 2013 Empfehlungsspezifikation hat das auch:


Als Referenz mein früherer Kommentar:

Firefox (Sep. 2013), Chrome (Sep. 2013), Internet Explorer (6): „an“. Ich vermute, das geht weit zurück. http://lxr.mozilla.org/classic/source/lib/layout/layform.c#86 – Da die meisten Browser einen Standardwert für ihre eigenen Codeobjekte haben müssen, denke ich, dass dieses “on” einfach üblich ist.

Benutzeravatar von techfoobar
techfoobar

Browser senden den Wert eines Kontrollkästchens (in den POST-Daten) nur, wenn es aktiviert ist. Eine Überprüfung, ob ein Wert (irgendein value) für ein bestimmtes Kontrollkästchen in den POST-Daten vorhanden ist, ist alles, was Sie brauchen.

dh

// no need to check against 'on', 'true', '1' etc..
if(post data contains a value for checkbox1) {
    // checkbox 1 is checked
}
else {
    // not checked
}

  • erwähnt, da der tatsächliche Wert unerheblich ist und idealerweise nicht überprüft werden sollte.

    – techfoobar

    16. Oktober 2012 um 14:09 Uhr

  • Sogar im Jahr 2012 gab es Einzelseitenanwendungen, die Ihren Kommentar ungültig machten. Wir senden keine tatsächlichen Formularbeiträge auf diese Weise an den Browser, den wir manchmal für den Wert des Kontrollkästchens erhalten möchten.

    – Mathijs Segers

    19. Dezember 2016 um 8:10 Uhr

1434060cookie-checkHTML: Standardwert des Kontrollkästchens

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy