/ 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
Sammenlign 2 dropdownlister
Fra : Thrane


Dato : 10-05-07 19:21

Hej

Jeg har en formular hvor jeg skal have sammenlignet 2 dropdownlister.
Lad os kalde dem Drop10 og Drop02. Hver af disse har 2 valgmuligheder (a +
b).

Jeg ahr brug en alert hvis "a" er valgt Drop01 og "a" er valgt i Drop02.

Jeg har noget alert kdoer der virker på textfields og har leget med det
samme til listen, men får ikke noget resultat.
Koden jeg benytter er:

if (billform.Drop01 .options[1].selected) {
alert('Efterkrav kan ikke vælges sammen med selvafhenting...');
return false;

Kender ikke meget til javascript, så jeg forsøgte dette uden held:

if (billform.Drop01 .options[1].selected) + (billform.Drop02
..options[1].selected) {
alert('Efterkrav kan ikke vælges sammen med selvafhenting...');
return false;

Noget gode råd?

--
Thrane



 
 
Thrane (10-05-2007)
Kommentar
Fra : Thrane


Dato : 10-05-07 20:08


"Thrane" <kyskoen@stofanet.dk> wrote in message
news:4643634b$0$52111$edfadb0f@dread11.news.tele.dk...
> Hej
>
> Jeg har en formular hvor jeg skal have sammenlignet 2 dropdownlister.
> Lad os kalde dem Drop10 og Drop02. Hver af disse har 2 valgmuligheder (a +
> b).
>
> Jeg ahr brug en alert hvis "a" er valgt Drop01 og "a" er valgt i Drop02.
>
> Jeg har noget alert kdoer der virker på textfields og har leget med det
> samme til listen, men får ikke noget resultat.
> Koden jeg benytter er:
>
> if (billform.Drop01 .options[1].selected) {
> alert('Efterkrav kan ikke vælges sammen med selvafhenting...');
> return false;
>
> Kender ikke meget til javascript, så jeg forsøgte dette uden held:
>
> if (billform.Drop01 .options[1].selected) + (billform.Drop02
> .options[1].selected) {
> alert('Efterkrav kan ikke vælges sammen med selvafhenting...');
> return false;
>
> Noget gode råd?
>
> --
> Thrane
>
>

Lidt ekstra kraftig søgning gav mig løsningen:

else if (document.billform.Drop01 .options[1].selected =
document.billform.Drop02.options[1].selected) {
alert ('Efterkrav kan ikke vælges sammen med selvafhenting...')
return false;
}

--
Thrane



Morten Petersen (10-05-2007)
Kommentar
Fra : Morten Petersen


Dato : 10-05-07 23:07

Her er mit bud på hvordan det kan gøres !!

<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
function test(){
if(document.billform.Drop01.value == document.billform.Drop02.value){
alert('Efterkrav kan ikke vælges sammen med selvafhenting...');
}
}

</script>
</head>
<body>
<form name="billform">
<select name="Drop01" onchange="test()">
<option value="a" selected="selected">a</option>
<option value="b">b</option>
</select>

<select name="Drop02" onchange="test()">
<option value="a">a</option>
<option value="b" selected="selected">b</option>
</select>
</form>
</body>
</html>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Morten Petersen (10-05-2007)
Kommentar
Fra : Morten Petersen


Dato : 10-05-07 23:05

Her er mit bud på hvordan det kan gøres !!

<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
function test(){
if(document.billform.Drop01.value ==
document.billform.Drop02.value){
alert('Efterkrav kan ikke vælges sammen med selvafhenting...');
}
}

</script>
</head>
<body>
<form name="billform">
<select name="Drop01" onchange="test()">
<option value="a" selected="selected">a</option>
<option value="b">b</option>
</select>

<select name="Drop02" onchange="test()">
<option value="a">a</option>
<option value="b" selected="selected">b</option>
</select>
</form>
</body>
</html>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Lasse Reichstein Nie~ (12-05-2007)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 12-05-07 12:40

"Thrane" <kyskoen@stofanet.dk> writes:

> Jeg har en formular hvor jeg skal have sammenlignet 2 dropdownlister.
> Lad os kalde dem Drop10 og Drop02. Hver af disse har 2 valgmuligheder (a +
> b).
>
> Jeg ahr brug en alert hvis "a" er valgt Drop01 og "a" er valgt i Drop02.

Hvornår skal alert'en vises? Når man sætter den anden af dem til "a"
eller når man forsøger at submitte formen?

Brugervenlighedsmæssigt er det ikke pænt at smide advarsler for tit.
Brugeren kan være ved at skifte begge indstillinger og rammer
tilfældigvis a/a-kombinationen på vejen. Så er det ikke pænt at
stoppe ham og tvinge ham til at gå en omvej for at nå frem til hans
mål.

Jeg vil anbefale en advarsel der ikke "larmer" så meget som en alert,
fx en rød kant omkring felterne og en tekst et sted på siden der
siger hvad der er galt, og så først smide en alert hvis brugeren
forsøger at submitte mens der stadig er noget galt (men optimalt
set, så er submit-knappen disabled hvis den ikke kan bruges).

For blot at løse problemet og smide en alert så tidligt som muligt,
kan man bruge funktionen:

<script type="text/javascript">
function validateAA(form) {
if (form.elements['Drop01'].value == "a" &&
form.elements['Drop02'].value == "a") {
alert("..fejlbesked..");
return false;
}
}
</script>

og så:
<form action="..." onsubmit="return validateAA(this);">
....
<select name="Drop01" onchange="return validateAA(this.form);">
<option value="a" selected="selected">A</option>
<option value="b">B</option>
</select>
<select name="Drop02" onchange="return validateAA(this.form);">
<option value="a">A</option>
<option value="b" selected="selected">B</option>
</select>
....
</form>
/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.'

Thrane (12-05-2007)
Kommentar
Fra : Thrane


Dato : 12-05-07 14:39


"Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
news:fy62mfrz.fsf@hotpop.com...
> For blot at løse problemet og smide en alert så tidligt som muligt,
> kan man bruge funktionen:
>
> <script type="text/javascript">
> function validateAA(form) {
> if (form.elements['Drop01'].value == "a" &&
> form.elements['Drop02'].value == "a") {
> alert("..fejlbesked..");
> return false;
> }
> }
> /L

Tak Lasse, men som nævnt har jeg løst problemet.
Og jeg validere først onSubmit...

--
Thrane


Lasse Reichstein Nie~ (12-05-2007)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 12-05-07 16:54

"Thrane" <noreply@noreply.dk> writes:

> "Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
> news:fy62mfrz.fsf@hotpop.com...
>> For blot at løse problemet og smide en alert så tidligt som muligt,
>> kan man bruge funktionen:
>>
>> <script type="text/javascript">
>> function validateAA(form) {
>> if (form.elements['Drop01'].value == "a" &&
>> form.elements['Drop02'].value == "a") {
>> alert("..fejlbesked..");
>> return false;
>> }
>> }
>> /L
>
> Tak Lasse, men som nævnt har jeg løst problemet.
> Og jeg validere først onSubmit...

Hvis det er det her du hentyder til:
---
if (document.billform.Drop01 .options[1].selected =
document.billform.Drop02.options[1].selected) {
alert ('Efterkrav kan ikke vælges sammen med selvafhenting...')
return false;
}
---
så løser det ikke problemet.

Først og fremmest står der "=" og ikke "==", så det der sker er
at Drop01.options[1].selected bliver sat til samme værdi som
Drop02.options[1], og det er også værdien af betingelsen på if'en.

Altså, hvis Drop02.options[1] er selected, så bliver Drop01.options[1]
det også, og advarslen vises.
Hvis Drop2.options[1] ikke er selected, så bliver Drop01.options[1]
også sat til ikke at være selected, selv hvis den er det, og advarslen
vises ikke.

Prøv alle fire kombinationer og se hvad der sker, og se hvilken værdi
der blever submittet!


Hvis man retter "=" til "==", så virker det stadig ikke efter
hensigten, da advarslen kommer hvis begge selects har valgt option 1,
eller hvis ingen af dem har det.

Hvis man retter "=" til "&&", så får man samme effekt som det jeg skrev,
men jeg foretrækker at sammenligne på værdi i stedet for nummer, da man
så ikke knækker scriptet hvis man tilføjer værdier før i listen.


Håber det hjælper
/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.'

Thrane (13-05-2007)
Kommentar
Fra : Thrane


Dato : 13-05-07 11:46


"Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
news:r6pmkpgv.fsf@hotpop.com...
>
> Prøv alle fire kombinationer og se hvad der sker, og se hvilken værdi
> der blever submittet!
>
>
> Hvis man retter "=" til "==", så virker det stadig ikke efter
> hensigten, da advarslen kommer hvis begge selects har valgt option 1,
> eller hvis ingen af dem har det.
>
> Hvis man retter "=" til "&&", så får man samme effekt som det jeg skrev,
> men jeg foretrækker at sammenligne på værdi i stedet for nummer, da man
> så ikke knækker scriptet hvis man tilføjer værdier før i listen.
>
>
> Håber det hjælper
> /L

"I stand corrected"!
Tak, Lasse...
Der gør jo som du siger det gør...

Jeg vil hurtigst muligt få rettet mig efter dig!
Vender lige tilbage med en melding

--
Thrane


Thrane (13-05-2007)
Kommentar
Fra : Thrane


Dato : 13-05-07 13:51


"Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
news:fy62mfrz.fsf@hotpop.com...

>
> Jeg vil anbefale en advarsel der ikke "larmer" så meget som en alert,
> fx en rød kant omkring felterne og en tekst et sted på siden der
> siger hvad der er galt, og så først smide en alert hvis brugeren
> forsøger at submitte mens der stadig er noget galt (men optimalt
> set, så er submit-knappen disabled hvis den ikke kan bruges).> /L
> --
> Lasse Reichstein Nielsen - lrn@hotpop.com

Har du evt. noget kode til den slags elelr et link til info om det?

--
Thrane


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

Månedens bedste
Årets bedste
Sidste års bedste