Innlegg Ubestemt Avmerkingsboksen Verdi

0
33

Det er en slik ting som en mellomliggende avmerkingsboksen verdi. Det er en avmerkingsboks (<input type=”checkbox”>) som ikke er sjekket. Det er heller ikke kontrollert. Det er middels.

Vi kan til og med velge en avmerkingsboks i at staten og style det med CSS!

Noen nysgjerrig poeng om:

  1. Det er bare mulig å angi via JavaScript. Det er ingen HTML-attributt eller verdi for det.
  2. Det betyr ikke INNLEGGET (eller FÅ eller hva som helst annet) eller har en verdi. Det er som å være ukontrollert.

Så sier du hadde en form som dette:

<form action=”” method=”POST” id=”form”>

<input name=”navn” type=”text” value=”Chris” />

<input name=”vegetarisk” type=”checkbox” class=”veg”>

<input type=”submit” value=”Send”>

</form>

Og, for uansett grunn, gjør du denne avmerkingsboksen ubestemmelige:

la veg = – dokument.querySelector(“.veg”);
veg.ubestemt = true;

Hvis du serialisere at form og ta en titt på hva som vil INNLEGGET, vil du få “name=Chris”. Ingen verdi for ruten. Omvendt, hadde du merket i avmerkingsboksen i HTML-og ikke røre den i JavaScript, vil du få “name=Chris&vegetarisk=på”.

Angivelig, dette er normalt. Rutene er ment å være boolsk, og den middels verdi er bare en estetisk ting som er ment å indikere at visual “barn” boksene i en blandet tilstand (noen sjekket, noen ikke). Det er bra. Kan du ikke endre det nå uten alvorlige brudd på nettsteder.

Men si at du virkelig trenger å vite på serveren, hvis en avkrysningsrute er i det mellomliggende tilstand. Den eneste måten jeg kan tenke på er å ha en kompis skjult inngang at du holde synkronisert.

<input name=”vegetarisk” type=”checkbox” class=”veg”>
<input name=”vegetar-verdi” type=”hidden” class=”veg-verdi”>
la veg = – dokument.querySelector(“.veg”);
la veg_value = – dokument.querySelector(“.veg-verdi”);
veg.ubestemt = true;
veg_value.value = “ubestemte”;

Jeg har sett middels verdi av en inngang, og jeg har satt en annen skjult inngang verdien til “ubestemte”, som jeg kan LEGGE ut. Serialisert betyr det ser ut som “name=Chris&vegetar-verdi=ubestemt”. God nok.

Se Pennen Kan du LEGGE ut et middels verdi? ved Chris Coyier (@chriscoyier) på CodePen.