Avatar billede lemche Nybegynder
20. februar 2006 - 00:01 Der er 5 kommentarer og
1 løsning

Kan man lave et script generelt??

Hejsa

Jeg har følgende script som jeg har fundet på nettet.
Det validerer om der er tastet noget ind i en input box.
Da jeg har flere input bokxe på siden hvor dette skal gøres ville det være rart hvis jeg kun skulle have et script for alle i stedet for at have en for dem hver (box1, box 2, osv.)

Kan dette lade sig gøre???





<script type="text/javascript">

function validering()
  {
  error = 0;
  if((document.forms[0].tal1.value=='') && (error==0)) 
  {       
    alert('Alle felter skal udfyldes!');
    document.forms[0].tal1.focus();
    error = 1;       
  }           

  if(error == 0)
  document.forms[0].submit();   
  }

</script>
Avatar billede psykochicken Nybegynder
20. februar 2006 - 15:58 #1
Hvis du har en form med mange input´s kan du bruge noget i stil med:

<script type="text/javascript">
function valider(theform){
  var a = theform.getElementsByTagName('input');
  for(i=0; i<a.length; i++){
    if(a[i].type == 'text' && a[i].value == ""){
      alert('Alle felter skal udfyldes');
      a[i].focus();
      return false;
    }
  }
}
</script>
<form action="" onsubmit="return valider(this);">
<input type="text">
<input type="text">
<input type="text">
<input type="submit" value="Send">
</form>

/psc
Avatar billede lemche Nybegynder
21. februar 2006 - 16:05 #2
Hej /psc

Du er genial, det virker bare.

Der er dog nogle ting jeg ikke er helt sikker på mht. dit script.
Gider du lige forklare disse??

1)  a.length - Er det antal tags som getElementsByTagName har fundet???
2)  Kan man bruge getElementById i stedet ???
3)  "return valider(this);" Jeg er ikke helt sikker på hvad return gør??
4)  Du bruger både (this) & ('input') er det syntaxen for for de 2 kald eller kan man bruge hvad som helst

Jeg er lidt rusten i programmering så derfor mine spørgsmål.

På forhånd TAK.

/Lemche
Avatar billede psykochicken Nybegynder
21. februar 2006 - 22:32 #3
Jeg er ikke nogen teori-haj, men trods faren for at vrøvle lidt skal jeg gøre forsøget :o)

1) ja, den kører funktionen så længe den finder input's

2) ja, men så skulle du give hver input et selvstændigt id - ex:
<script type="text/javascript">
function valider(id){
  for(i=0; i<3; i++){
    var a = document.getElementById(id + i);
    if(a.value == ""){
      alert('Alle felter skal udfyldes');
      a.focus();
      return false;
    }
  }
  return true
}
</script>
<form action="" onsubmit="return valider('mitid');">
<input id="mitid0" type="text">
<input id="mitid1" type="text">
<input id="mitid2" type="text">
<input type="submit">
</form>

3) return valider() - for at få videresendt det true eller false funktionen returnerer.

4)Det kommer an på sammenhængen.
Hvis du angiver tag-navnet direkte i getElementsByTagName('tag_navn'), så er et syntaxen, men du kan også bruge getElementsByTagName(et_tilfældigt_ord), hvis bare du har defineret et_tilfældigt_ord et andet sted.
(this) henviser til (theform) i scriptet. Så valider(this) betyder blot at det er DETTE element (formen) funktionen skal bruges på.
Du kan måske bedre se sammenhængen i ex. til 2), der bare er en kortere version af:

<script type="text/javascript">
function valider(){
  if(document.getElementById('mitid0').value == ""){
    alert('Alle felter skal udfyldes');
    document.getElementById('mitid0').focus();
    return false;
  }
  if(document.getElementById('mitid1').value == ""){
    alert('Alle felter skal udfyldes');
    document.getElementById('mitid1').focus();
    return false;
  }
  if(document.getElementById('mitid2').value == ""){
    alert('Alle felter skal udfyldes');
    document.getElementById('mitid2').focus();
    return false;
  }
  else {
    return true
  }
}
</script>
<form action="" onsubmit="return valider();">
<input id="mitid0" type="text">
<input id="mitid1" type="text">
<input id="mitid2" type="text">
<input type="submit">
</form>

/psc
Avatar billede lemche Nybegynder
21. februar 2006 - 23:45 #4
Tak skal du have.

Giver du et svar så jeg kan give dig dine point.

/Lemche
Avatar billede psykochicken Nybegynder
21. februar 2006 - 23:55 #5
- kommer her ;o)
Avatar billede psykochicken Nybegynder
22. februar 2006 - 12:43 #6
...og tak for point :o)
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