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.
Der Wert des IDL-Attributs ist im Modus Standard ein.
[…]
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:
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.
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
14340600cookie-checkHTML: Standardwert des Kontrollkästchensyes
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