webForumDet fria alternativet

Formulärkoll med eller

2 svar · 360 visningar · startad av leniz

lenizMedlem sedan aug. 2001676 inlägg
#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;
}
}
nitro2k01Medlem sedan aug. 20039 342 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...
}
lenizMedlem sedan aug. 2001676 inlägg
#3

Tusen tack! :-)

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