webForumDet fria alternativet

Kontrollera ett fält

JavaScriptur Javascript

4 svar · 197 visningar · startad av juventus1

Medlem sedan dec. 2000399 inlägg
Frågan#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é

Medlem 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/

Medlem 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é

Medlem 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.

Medlem sedan dec. 2000399 inlägg
#5

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

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