Avatar billede nicocarlos Nybegynder
27. juni 2005 - 22:45 Der er 13 kommentarer og
1 løsning

Form går videre til post siden

Hejsa
jeg har en form der går videre til post siden. Selvom valideringen laver fejl. den skal self gerne blive på form siden. Her er koden. det er html/javascript.

Javascript delen:
<script type="text/javascript">
<!--


function validering()
{
  error = 0;
  if((document.forms[1].navn.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med dit navn!');
    document.forms[1].navn.focus();
    error = 1;       
  }
 
  if((document.forms[1].vej.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med din adresse!');
    document.forms[1].vej.focus();
    error = 1;       
  }
 
  if((document.forms[1].land.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med dit land!');
    document.forms[1].land.focus();
    error = 1;       
  }
 
  if((document.forms[1].vejnr.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med din adresse!');
    document.forms[1].vejnr.focus();
    error = 1;       
  }
 
  if((document.forms[1].Telefon_dag_arbejde.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med dit telefonnummer!');
    document.forms[1].Telefon_dag_arbejde.focus();
    error = 1;       
  }
 
  if((document.forms[1].FormsMultiLine38.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med alle deltageres navne!');
    document.forms[1].FormsMultiLine38.focus();
    error = 1;       
  }
 
  var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ";
  var regexp = new RegExp("^["+t+"]["+t+"\\.\\-\\+]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2}["+t+"\\.\\-\\/]*$","i");
 
  if (document.forms[1].email.value != "" && !regexp.test(document.forms[0].email.value))
  {
      alert("Den indtastede e-mail adresse er ikke gyldig!");
    document.forms[1].email.focus();
    error = 1;
  }
 
/* if(!((document.forms[0].rbutton[0].checked) || (document.forms[0].rbutton[1].checked) || (document.forms[0].rbutton[2].checked) || (document.forms[0].rbutton[3].checked) || (document.forms[0].rbutton[4].checked) || (document.forms[0].rbutton[5].checked) || (document.forms[0].rbutton[6].checked) || (document.forms[0].rbutton[7].checked) || (document.forms[0].rbutton[8].checked)) && (error==0)) 
  {       
    alert('Du skal vælge datoen for ønsket orienteringsmøde!');
    error = 1;       
  }
  */
 
  if(error == 0)
 
  document.forms[0].submit();   
}
//-->
</script>

html delen.
<form action="post_bestilling.php" method="post" name="locationForm" onsubmit="validering();return false;">

det er den vigtige del resten er der ikke fejl i men den hopper til post_bestilling.php selvom den laver fejl det skal den ikke.

Håber der er en som kan hjælpe. :D
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 22:54 #1
onsubmit="validering();return false;"
skal være
    onsubmit="return validering();"

og så i bunden af funktionen erstatter du

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

med

  if(error == 0) {
    return true;
  } else {
    return false;
  }
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 22:57 #2
Og så kan jeg ikke helt gennemskue hvorfor du både bruger .forms[1] og .forms[0].
Er du sikker på din funktion ikke melder fejl?

Den bedste måde er at tage formen som parameter til funktionen:

  onsubmit="return validering(this);"

og så i funktionen:

function validering(f)
{
  error = 0;
  if((f.navn.value=='') && (error==0))
  {     
    alert('Du skal udfylde feltet med dit navn!');
    f.navn.focus();
    error = 1;     
  }


Og endelig kan du nemt undgå den error-variabel:

function validering(f)
{
  if (f.navn.value=='')
  {     
    alert('Du skal udfylde feltet med dit navn!');
    f.navn.focus();
    return false;     
  }

  // flere af samme slags tests der siger "return false" hvis der er fejl

  // i bunden

  return true;
}
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:02 #3
den hopper stadig videre:

Koden er:

<script type="text/javascript">
<!--


function validering()
{
  error = 0;
  if((document.forms[1].navn.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med dit navn!');
    document.forms[1].navn.focus();
    error = 1;       
  }
 
  if((document.forms[1].vej.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med din adresse!');
    document.forms[1].vej.focus();
    error = 1;       
  }
 
  if((document.forms[1].land.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med dit land!');
    document.forms[1].land.focus();
    error = 1;       
  }
 
  if((document.forms[1].vejnr.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med din adresse!');
    document.forms[1].vejnr.focus();
    error = 1;       
  }
 
  if((document.forms[1].Telefon_dag_arbejde.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med dit telefonnummer!');
    document.forms[1].Telefon_dag_arbejde.focus();
    error = 1;       
  }
 
  if((document.forms[1].FormsMultiLine38.value=='') && (error==0)) 
  {       
    alert('Du skal udfylde feltet med alle deltageres navne!');
    document.forms[1].FormsMultiLine38.focus();
    error = 1;       
  }
 
  var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ";
  var regexp = new RegExp("^["+t+"]["+t+"\\.\\-\\+]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2}["+t+"\\.\\-\\/]*$","i");
 
  if (document.forms[1].email.value != "" && !regexp.test(document.forms[1].email.value))
  {
      alert("Den indtastede e-mail adresse er ikke gyldig!");
    document.forms[1].email.focus();
    error = 1;
  }
 
/* if(!((document.forms[0].rbutton[0].checked) || (document.forms[0].rbutton[1].checked) || (document.forms[0].rbutton[2].checked) || (document.forms[0].rbutton[3].checked) || (document.forms[0].rbutton[4].checked) || (document.forms[0].rbutton[5].checked) || (document.forms[0].rbutton[6].checked) || (document.forms[0].rbutton[7].checked) || (document.forms[0].rbutton[8].checked)) && (error==0)) 
  {       
    alert('Du skal vælge datoen for ønsket orienteringsmøde!');
    error = 1;       
  }
  */
 
if(error == 0) {
    return true;
  } else {
    return false;
  }   
}
//-->
</script>

html:

<form action="post_rejsebestilling.php" method="post" name="locationForm" onsubmit="return validering();">
Avatar billede schwarz84 Nybegynder
27. juni 2005 - 23:02 #4
Ja, hvis formen ikke gives med som parameter, vil det ikke virke i Firefox/Mozilla.
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:03 #5
"Og så kan jeg ikke helt gennemskue hvorfor du både bruger .forms[1] og .forms[0]."

jeg bruger det fordi der er 2 forms på samme side, og den lavede fejl med det ved at validrere på den første form (tror jeg nok)
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:04 #6
Kan i ikke prøve at rette den første del af java og sidste så kan jeg selv lave alle dem ind imellem? Og så lige den lille form (html)
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 23:09 #7
Det giver ikke mening at have 2 <form>-e på en side på den måde.

Jeg kan ikke rette noget, når jeg ikke kan se hvad du laver. Har du et link til siden?
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:09 #8
Det vil sige:

function validering(f)
{
  if (f.navn.value=='')
  {     
    alert('Du skal udfylde feltet med dit navn!');
    f.navn.focus();
    return false;     
  }

osv. osv.

og så i bunden

return true;
}

og htmlen til:
<form action="post_rejsebestilling.php" method="post" name="locationForm" onsubmit="return validering(this);">
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:09 #9
vent lige prøver lige det du skrev 2 min
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:12 #10
det virker nu jeg brugte:

function validering(f)
{
  if (f.navn.value=='')
  {     
    alert('Du skal udfylde feltet med dit navn!');
    f.navn.focus();
    return false;     
  }
return true;
}

<form action="post_rejsebestilling.php" method="post" name="locationForm" onsubmit="return validering(this);">


tak lig svar :D
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:12 #11
nu virker det også i mozila/firefox?
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 23:12 #12
det lyder rigtigt - bortset fra det med de 2 <form>-e
Avatar billede erikjacobsen Ekspert
27. juni 2005 - 23:13 #13
Jeg samler slet ikke på point, tak.
Avatar billede nicocarlos Nybegynder
27. juni 2005 - 23:16 #14
jamen jeg siger tak.

Det med 2 forme skulle jeg ikke have nævnt - de har intet med hinanden at gøre. :/
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