webForumDet fria alternativet

Kontrollera ett fält

4 svar · 197 visningar · startad av juventus1

juventus1Medlem sedan dec. 2000399 inlägg
#1

Jag har en funktion som ska kontrollera att man matat in något i ett sökfält. Kontrollen fungerar bra men fältet skickas ända iväg. Så här ser det ut.

function CheckSearch() {
   if (sok.kategori.value ==  0) {
      alert("Du måste välja en kategori");
      sok.kategori.Focus();
      return false;
   }
   if(sok.SearchString.value ==  "") {
      alert("Du måste fylla i ett sökord");
      sok.SearchString.Focus();
      return false;
    }
    return true;
}

Jag anropar funktionen så här:

<form name="sok" action="sok.asp?sok=1" method="post" onSubmit="return CheckSearch();">

Är det någon som har ett förslag?

mvh André

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#2

Skriv så här så borde det funka. :)

function CheckSearch(){
if (sok.kategori.value == 0){
alert("Du måste välja en kategori");
sok.kategori.Focus();
return false;
} else
if(sok.SearchString.value == ""){
alert("Du måste fylla i ett sökord");
sok.SearchString.Focus();
return false;
} else {
return true;
}
}

Det berodde alltså på att efter du satt return till false så satte du det till true igen. Skulle kanske även gå att skriva så som du skrev bara att man la return true; längst upp, men jag skulle skriva så här. :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

juventus1Medlem sedan dec. 2000399 inlägg
#3

Jag har gjort precis som du föreslagit men det fungerar ändå inte. Sidan skickas fortfarande iväg... Vad kan jag ha missat??

function CheckSearch() {
if (sok.kategori.value ==  0) {
alert("Du måste välja en kategori");
sok.kategori.Focus();
return false;
}
if(sok.SearchString.value ==  "") {
alert("Du måste fylla i ett sökord");
sok.SearchString.Focus();
return false;
}
else {
return true;
}
}

mvh André

ERR0RMedlem sedan dec. 2000596 inlägg
#4

Pröva att bara skriva return; istället för return false.

------------------
Olle: Pappa, jag har fått en sticka i fingret...
Pappa: Nämen Olle, hur många gånger har jag sagt åt dig att du inte får klia dig i huvudet.

juventus1Medlem sedan dec. 2000399 inlägg
#5

Äntligen löst det! Jag bytte plats på set focus och return och då fungerade det :)

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)