/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Validering af checkboxe
Fra : Allan Johansen


Dato : 21-03-04 15:25

Hej NG

Hvordan laver jeg en validering af 4 checkboxe, således at brugeren vil få
en alert-besked i tilfælde af at han/hun ikke har afkrydset nogle af boxene
og ingen alert-besked får nå bare der er afsat mindst et kryds?

Har man kun prompt-, advarsels- og bekræft-dialogbokse at vælge imellem i
JavaScript?
Jeg kunne godt bruge en advarselsbox men uden ! og helse med ?
Og der skal helst kun være en OK knap.

På forhånd tak!


Allan



 
 
Lasse Reichstein Nie~ (21-03-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 21-03-04 17:39

"Allan Johansen" <hesselbjerg_dk@hotmail.com> writes:

> Har man kun prompt-, advarsels- og bekræft-dialogbokse at vælge imellem i
> JavaScript?

Ja.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Allan Johansen (21-03-2004)
Kommentar
Fra : Allan Johansen


Dato : 21-03-04 17:43

"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:u10ignoe.fsf@hotpop.com...
> "Allan Johansen" <hesselbjerg_dk@hotmail.com> writes:
>
> > Har man kun prompt-, advarsels- og bekræft-dialogbokse at vælge imellem
i
> > JavaScript?
>
> Ja.
> /L
> --

Tak Lasse
Vil du også hjælpe med valideringen af checkboxene. Jeg ved du kan


Mvh. Allan Johansen



Lasse Reichstein Nie~ (21-03-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 21-03-04 17:59

"Allan Johansen" <hesselbjerg_dk@hotmail.com> writes:

> Vil du også hjælpe med valideringen af checkboxene. Jeg ved du kan

Ups, skulle jeg læse hele indlægget før jeg svarede? :)

Ok:
>>> Hvordan laver jeg en validering af 4 checkboxe, således at brugeren vil få
>>> en alert-besked i tilfælde af at han/hun ikke har afkrydset nogle af boxene
>>> og ingen alert-besked får nå bare der er afsat mindst et kryds?

Den relevante egenskab ved checkboxen er "checked", en boolean som er
sand hvis boxen er markeret.

Lad os bruge standardformatet for en valideringsfunktion: Tager formen
som argument og returnerer true eller false.
---
function validateCheckboxes(form) {
var elems = form.elements;
if (!(elems['checkbox1'].checked ||
elems['checkbox2'].checked ||
elems['checkbox3'].checked ||
elems['checkbox4'].checked)) { // ikke nogen af dem checked
alert("Du skal vælge en checkbox!");
return false;
}
return true;
}
---
Den skulle være lige til at bruge;
<form action="..." onsubmit="return validateCheckcboxes(this)">

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Allan Johansen (21-03-2004)
Kommentar
Fra : Allan Johansen


Dato : 21-03-04 18:04

"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:isgygmqp.fsf@hotpop.com...
> Ups, skulle jeg læse hele indlægget før jeg svarede? :)
>
> Ok:
> Den relevante egenskab ved checkboxen er "checked", en boolean som er
> sand hvis boxen er markeret.
>
> Lad os bruge standardformatet for en valideringsfunktion: Tager formen
> som argument og returnerer true eller false.
> ---
> function validateCheckboxes(form) {
> var elems = form.elements;
> if (!(elems['checkbox1'].checked ||
> elems['checkbox2'].checked ||
> elems['checkbox3'].checked ||
> elems['checkbox4'].checked)) { // ikke nogen af dem checked
> alert("Du skal vælge en checkbox!");
> return false;
> }
> return true;
> }
> ---
> Den skulle være lige til at bruge;
> <form action="..." onsubmit="return validateCheckcboxes(this)">
>

Mange tak, det vil jeg prøve.
Jeg har i forvejen en validering på nogle andre felter, så kan jeg smelte
din onsubmit="return validateCheckcboxes(this)" sammen med den jeg har i
øjeblikket: onsubmit="validering();return false;" sådan at der valideres på
samtlige felter?

Mvh. Allan Johansen



Lasse Reichstein Nie~ (21-03-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 21-03-04 18:19

"Allan Johansen" <hesselbjerg_dk@hotmail.com> writes:

> Mange tak, det vil jeg prøve.
> Jeg har i forvejen en validering på nogle andre felter, så kan jeg smelte
> din onsubmit="return validateCheckcboxes(this)" sammen med den jeg har i
> øjeblikket: onsubmit="validering();return false;" sådan at der valideres på
> samtlige felter?

jeg anbefaler ikke at bruge formatet
onsubmit="validering();return false;"
Det betyder at valideringsfunktionen ikke kun validerer, den kalder
også formens submit-funktion, hvorefter den *altid* forhindrer den
normale submit. Den ekstra kompleksitet er slet ikke nødvendig. Det er
der slet ingen grund til. Formen vil automatisk blive submittet hvis
onsubmit ikke returnerer false.

Så, jeg anbefaler at du retter din validering()-funktion til
at returnere false de steder hvor den nu returnerer, og returnere
true der hvor den kalder formens submit.

Du kan så også nemmere kombinere flere valideringer:

onsubmit="return validering() && validateCheckboxes(this);"

(Det er også nemmere at sende formen med som argument, nu hvor man
alligevel står med den i hånden, end at lade validering() selv finde
formen ved hjælp af document.forms['formnavn'] (eller endnu dårligere
metoder))

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Allan Johansen (21-03-2004)
Kommentar
Fra : Allan Johansen


Dato : 21-03-04 19:53

Mange tak skal du have Lasse, der var du lige min redningsmand, og jeg lærte
faktisk noget

Ved du iøvrigt, hvordan man lave følgende:

Hvordan laver jeg en function, som lægger f.eks. 25.50 til denne variable:
var fShipping = 39.00; //Shipping amount

Ovenstående skal først ske, når man har markeret en radio-knap.
Helt præcist markeret en radio-knap ud af 3 radio-knapper.
De angiver følgende 3 muligheder: Efterkrav, bankoverførsel og check, så når
man vælger efterkrav skal functionen lægge et beløb til.

Variablen skal efterfølgende være eks.: var fShipping = 64.50;
//Shipping amount

Er som en tråd længere nede i gruppen, men igen har svaret, så jeg vover at
spørge dig om hjælp, skønt du allerede har hjulpet mig meget. Så sig endelig
fra, hvis jeg beder om for meget.


Mvh. Allan Johansen



Lasse Reichstein Nie~ (21-03-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 21-03-04 22:11

"Allan Johansen" <hesselbjerg_dk@hotmail.com> writes:

> Mange tak skal du have Lasse, der var du lige min redningsmand, og jeg lærte
> faktisk noget
>
> Ved du iøvrigt, hvordan man lave følgende:
>
> Hvordan laver jeg en function, som lægger f.eks. 25.50 til denne variable:
> var fShipping = 39.00; //Shipping amount

Jeg antager at det er en global variabel.

> Ovenstående skal først ske, når man har markeret en radio-knap.

Hmm. Der er ikke nogen måde at triggere på at en radioknap bliver
fravalgt, kun at man trykker på den, så det er nødvendigt at holde
øje med de andre knapper.

---
<script type="text/javascript">
var efterkravValgt = false;
var EFTERKRAV_PRIS = 25.5;
function vaelgBetaling(element) {
if (element.value == "efterkrav" && ! efterkravValgt) {
fShipping += EFTERKRAV_PRIS;
efterkravValgt = true;
} else if (element.value != "efterkrav" && efterkravValgt) {
fShipping -= EFTERKRAV_PRIS;
efterkravValgt = false;
}
}
</script>
...
<input type="radiobutton" name="betaltype"
value="efterkrav" onclick="vaelgBetaling(this)">
<input type="radiobutton" name="betaltype"
value="bankoverfoer" onclick="vaelgBetaling(this)">
<input type="radiobutton" name="betaltype"
value="check" onclick="vaelgBetaling(this)">
---

Alternativt kunne du nøjes med at lægge værdien til når du skal bruge
den, fx ved at kalde denne funktion i stedet for at aflæse variablen
direkte:
---
function getShipping() {
return fShipping +
(document.forms['formNavn'].elements['betaltype'][0].checked?
25.5 : 0);
}
---

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Allan Johansen (22-03-2004)
Kommentar
Fra : Allan Johansen


Dato : 22-03-04 20:20

"Lasse Reichstein Nielsen" <lrn@hotpop.com> skrev i en meddelelse
news:ad29hpo5.fsf@hotpop.com...
> Jeg antager at det er en global variabel.
>
> > Ovenstående skal først ske, når man har markeret en radio-knap.
>
> Hmm. Der er ikke nogen måde at triggere på at en radioknap bliver
> fravalgt, kun at man trykker på den, så det er nødvendigt at holde
> øje med de andre knapper.
>
> ---
> <script type="text/javascript">
> var efterkravValgt = false;
> var EFTERKRAV_PRIS = 25.5;
> function vaelgBetaling(element) {
> if (element.value == "efterkrav" && ! efterkravValgt) {
> fShipping += EFTERKRAV_PRIS;
> efterkravValgt = true;
> } else if (element.value != "efterkrav" && efterkravValgt) {
> fShipping -= EFTERKRAV_PRIS;
> efterkravValgt = false;
> }
> }
> </script>
> ...
> <input type="radiobutton" name="betaltype"
> value="efterkrav" onclick="vaelgBetaling(this)">
> <input type="radiobutton" name="betaltype"
> value="bankoverfoer" onclick="vaelgBetaling(this)">
> <input type="radiobutton" name="betaltype"
> value="check" onclick="vaelgBetaling(this)">
> ---
>
> Alternativt kunne du nøjes med at lægge værdien til når du skal bruge
> den, fx ved at kalde denne funktion i stedet for at aflæse variablen
> direkte:
> ---
> function getShipping() {
> return fShipping +
> (document.forms['formNavn'].elements['betaltype'][0].checked?
> 25.5 : 0);
> }
> ---

Først mange tak Lasse
Det var lige, hvad jeg manglede, tror jeg da, skønt jeg ikke rigtig kan få
det til at fungere, som jeg gerne vil.
Hvordan sender jeg variablen videre til en anden side?
Jeg har nemlig en checkout.php side, som gerne skulle modtage funktionens
resultatet.
Linien i min PHP side ser således ud: $strMessageBody .= "Fragt inkl. moms:
$SHIPPING \n";
Jeg har rettet ovenstående eksempler fra fshipping til SHIPPING, men det
virker ikke.

Hvis jeg gør brug af function getShipping() hvor skal den så placeres og
klader jeg den bare sådan: getShipping() ?


Mvh. Allan Johansen



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste