webForumDet fria alternativet
Logga in / Bli medlem

Formulärkoll med eller

JavaScript

2 svar · 360 visningar · startad av leniz

Medlem sedan aug. 2001676 inlägg
Trådstart#1

Hej!

Ser någon vad som är fel på den här koden. Jag vill ha det så att man bara behöver ange någon form av kontaktinformation, därav eller tecknen ||. Problemet är att just det inte fungerar, det går inte skicka iväg om inte alla 3 (telefon, mobil och epost) är ifyllt.

Tacksam för svar! :)

function kontroll()
{

if(!document.form1.namnet.value)
{
alert('Du har glömt att fylla i Ditt namn.');
return false;
}  

if((!document.form1.telefon.value) || (!document.form1.mobil.value) || (!document.form1.epost.value))
{
alert('Du har glömt att fylla i någon form av kontaktinformation.');
return false;
} 

else 
{
return true;
}
}
Medlem sedan aug. 20039 340 inlägg
#2

Det du vill göra är egentligen:

if (!(document.form1.telefon.value || document.form1.mobil.value || document.form1.epost.value)){
  // Fel...
}

Alltså om kollar om personen telefon eller mobil eller epost, och fortfarande får falskt, så är det fel. Om du vill skriva på ett annat sätt kan du använda den så kallade deMorgans teorem, som säger att !(x || y) == (!x && !y) vilket i ditt fall skulle ge:

if (!document.form1.telefon.value && !document.form1.mobil.value && !document.form1.epost.value)){
  // Fel...
}
Medlem sedan aug. 2001676 inlägg
#3

Tusen tack! :-)

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