Ich persönlich bevorzuge es, ein verborgenes Feld mit demselben Namen hinzuzufügen, das verwendet wird, wenn das Kontrollkästchen nicht markiert ist. Aber die Lösung ist nicht so einfach, wie es vielleicht scheint.
Wenn Sie diesen Code hinzufügen:
<form>
<input type='hidden' value='0' name='selfdestruct'>
<input type='checkbox' value='1' name='selfdestruct'>
</form>
Der Browser kümmert sich nicht wirklich darum, was Sie hier tun. Der Browser sendet beide Parameter an den Server, und der Server muss entscheiden, was mit ihnen zu tun ist.
PHP zum Beispiel nimmt den letzten Wert als den zu verwendenden Wert (siehe: Maßgebliche Position der Schlüssel für doppelte HTTP-GET-Abfragen )
Andere Systeme, mit denen ich gearbeitet habe (die auf Java basieren), machen es genau andersherum - sie bieten nur den ersten Wert an. .NET gibt Ihnen stattdessen ein Array mit beiden Elementen
Ich werde versuchen, dies mit node.js, Python und Perl irgendwann zu testen.