Kontrollera ett fält

JavaScript

4 svar · 202 visningar · startad av juventus1

Medlem sedan dec. 2000399 inlägg
Trådstart#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. :)

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.

Medlem sedan dec. 2000399 inlägg
#5

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

252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)