Avatar billede para7 Nybegynder
12. august 2009 - 09:35 Der er 17 kommentarer og
1 løsning

Hvorfor virker valideringen virker ikke i Firefox

<script language="JavaScript1.1" type="text/javascript">
function validering(){
  if (document.all.name.value=='')
  { 
    alert('Du skal udfylde et navn');
    document.all.name.focus();
    return false;     
  }
  if (document.all.addr.value=='')
  { 
    alert('Du skal udfylde din adresse');
    document.all.addr.focus();
    return false;     
  }
  if (document.all.city.value=='')
  { 
    alert('Du skal udfylde din by');
    document.all.city.focus();
    return false;     
  }
  if (document.all.tlf.value=='')
  { 
    alert('Du skal udfylde det telefonnummer hvor vi kan komme i kontakt med dig');
    document.all.tlf.focus();
    return false;     
  }
var filter=/^.+@.+\..{2,3}$/
var tekst=document.all.email.value.toLowerCase();
  if (! filter.test(tekst)){
      alert ('The email is not correct.');
      document.all.email.focus();
      return false;
  }
var select = document.getElementById('mailtype');
if(select.selectedIndex==0){    alert('Du skal vælge hvor du har hørt om os');
    document.all.mailtype.focus();
    return false;     
}
return true;
}

</script>
Avatar billede keysersoze Ekspert
12. august 2009 - 09:53 #1
i stedet for "document.all.name" skal du benytte "document.getElementById('name')" osv
Avatar billede para7 Nybegynder
12. august 2009 - 10:00 #2
Altså som der er for validation af select document.getElementById('mailtype');. Det prøver jeg...
PS: validation af selecten dur ikke...
Avatar billede para7 Nybegynder
12. august 2009 - 10:08 #3
Jeg prøver, er ikke nogen haj til det her. correct me if I'm wrong:)

$validering ="  if (document.all.".$field.".value=='')\n";
skal være:
$validering ="  if (document.getElementById('".$field1.value"')=='')\n";
Avatar billede olebole Juniormester
12. august 2009 - 10:15 #4
<ole>

$validering ="  if (document.getElementById('".$field1"').value=='')\n";

/mvh
</bole>
Avatar billede para7 Nybegynder
12. august 2009 - 10:16 #5
Hov, der kom php ind i billedet. Kan du uddybe lidt mere? Jeg skal lave php koder, der fremstiller scriptet.
Avatar billede para7 Nybegynder
12. august 2009 - 10:22 #6
Jeg er kommet frem til det her, men det virker ikke endnu, heller ikke i IE:

if (document.getElementById('value')=='')
Avatar billede olebole Juniormester
12. august 2009 - 10:26 #7
para7 >> #4  =)
Avatar billede para7 Nybegynder
12. august 2009 - 10:28 #8
Hej olebole
Dit foreslag har jeg godtnok prøvet (manglede lige et punktum) Det slår åbenbart scriptet fra, så der ikke er nogen validering i begge browsertyper.
Avatar billede para7 Nybegynder
12. august 2009 - 10:30 #9
Kan ikke lige forstå det med:
#4  =)
Avatar billede para7 Nybegynder
12. august 2009 - 10:34 #10
Det escallerer :) Jeg skulle nok have tilbudt 200.
Avatar billede olebole Juniormester
12. august 2009 - 10:57 #11
Pointantallet er rystende  =)

Du skrev i #3:
    Jeg prøver, er ikke nogen haj til det her. correct me if I'm wrong:)

$validering ="  if (document.all.".$field.".value=='')\n";
skal være:
$validering ="  if (document.getElementById('".$field1.value"')=='')\n";

#4 var så min korrektur af dét udtryk:

$validering ="  if (document.getElementById('".$field1"').value=='')\n";
Avatar billede olebole Juniormester
12. august 2009 - 10:58 #12
Hmmm ... det var måske lidt underforstået ... "Pointantallet er rystende ligegyldigt"  ;o)
Avatar billede keysersoze Ekspert
12. august 2009 - 11:00 #13
jaja - inderst inde gemmer der sig en lille pointrytter ;)
Avatar billede para7 Nybegynder
12. august 2009 - 11:15 #14
Med
$validering ="  if (document.getElementById('".$field1."').value=='')\n";
har jeg nu følgende script, men det er sat ud af drift:

<script language="JavaScript1.1" type="text/javascript">
function validering(){
  if (document.getElementById('').value=='')
  { 
    alert('Du skal udfylde et navn');
    document.all.name.focus();
    return false;     
  }
  if (document.getElementById('').value=='')
  { 
    alert('Du skal udfylde din adresse');
    document.all.addr.focus();
    return false;     
  }
  if (document.getElementById('').value=='')
  { 
    alert('Du skal udfylde din by');
    document.all.city.focus();
    return false;     
  }
  if (document.getElementById('').value=='')
  { 
    alert('Du skal udfylde det telefonnummer hvor vi kan komme i kontakt med dig');
    document.all.tlf.focus();
    return false;     
  }
var filter=/^.+@.+\..{2,3}$/
var tekst=document.all.email.value.toLowerCase();
  if (! filter.test(tekst)){
      alert ('The email is not correct.');
      document.all.email.focus();
      return false;
  }
var select = document.getElementById('mailtype');
if(select.selectedIndex==0){    alert('Du skal vælge hvor du har hørt om os');
    document.all.mailtype.focus();
    return false;     
}
return true;
}

</script>

Tak for hjælpen begge to. Det er ikke mange point at dele, men skriv lige et svar olebole. Vi må have fat i ham der har udviklet det her php/javascript.
Avatar billede keysersoze Ekspert
12. august 2009 - 11:25 #15
husk også at erstatte der hvor du sætter felterne i focus samt din "var tekst..." - fx document.all.tlf.focus(); til document.getElementById('tlf').focus();
Avatar billede para7 Nybegynder
12. august 2009 - 11:37 #16
TAk, det kunne være et tip til udvikleren.
Avatar billede olebole Juniormester
12. august 2009 - 14:48 #17
Det er ikke lige til at se, hvor $field1 kommer fra, så det er svært at komme det ret meget nærmere. Det er nok en meget god idé at tage fat i den, der har kodet PHP'en  =)
Avatar billede para7 Nybegynder
12. august 2009 - 16:44 #18
Yes, han kender det som sin egen lomme. Tak for nu :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester