Javascript check lege velden: form wordt gewist?!

Status
Niet open voor verdere reacties.

valletta

Nieuwe gebruiker
Lid geworden
5 aug 2004
Berichten
3
Hallo,

Ik gebruik onderstaand script voor een validatie op mijn formulier. Afhankelijk van welke radio-button je kiest wordt je doorgestuurd naar een bepaald bestand.
Dit werkt.

Er zit ook een check in of je wel een van de radiobuttons hebt aangevinkt. Als je dit niet hebt gedaan krijg je een melding. Dat werkt ook nog.
Maar als je die melding wegklikt, refresht de pagina (zo lijkt het) en is de inhoud van het formulier gewist.

Ik wil graag dat die ingevulde data blijft staan zodat de bezoeker alleen nog maar een radio-button hoeft aan te vinken.

Kan iemand me vertellen hoe ik onderstaand script aan kan passen zodat het formulier niet gewist wordt?

Tnx Valletta :o

<script language="javascript">



function decide_action()

{

if(check_buttons()==true)

{

if(document.frm1.ch[0].checked==true)

{

document.frm1.action="actie.php";

}

else if(document.frm1.ch[1].checked==true)

{

document.frm1.action="actie2.php";

}

else

{

document.frm1.action="actie.php";

}

document.frm1.submit();

}


}



function check_buttons()

{

var ok=false;

for(i=0; i<3; i++)

{

if(document.frm1.ch.checked==true)

{

ok=true;

}

}

if(ok==false)

{

alert("Kies of u dit bericht wilt richten aan het secretariaat of de ledenadministratie.");
}

return ok;

}



</script>
 
Heb je dit in het formulier gebruikt?
PHP:
<form onsubmit="return check_buttons()" ........>
Dat zorgt ervoor dat de functie check_buttons() het opsturen afbreekt als er geen rondje is ingevuld.


Anders kun je beter even ook het formulier (of de pagina) hier posten tussen
PHP:
 en
tags. :)


Vr.Gr. Egel.
 
Bedankt voor je reaktie.
Hieronder mijn code (het is geen php code, ik heb het er toch maar omheen gezet):

PHP:
<html>
<head>
	<title>test</title>
	<link rel="stylesheet" type="text/css" href="../css/content.css" />
</head>
<style>
BODY {
 margin: 0px 0px 0px 0px;
}

</style>

<script language="javascript">

 

function decide_action()

{

            if(check_buttons()==true)

            {

                        if(document.frm1.ch[0].checked==true)

                        {

                                    document.frm1.action="actie.php";

                        }

                        else if(document.frm1.ch[1].checked==true)

                        {

                                    document.frm1.action="actie2.php";

                        }

                        else

                        {

                                    document.frm1.action="actie.php";

                        }

                        document.frm1.submit();

            }
			

}

 

function check_buttons()

{

            var ok=false;

            for(i=0; i<3; i++)

            {

                        if(document.frm1.ch[i].checked==true)

                        {

                                    ok=true;

                        }

            }

            if(ok==false)

            {

                        alert("Kies of u dit bericht wilt richten aan het secretariaat of de ledenadministratie.");
            }

            return ok;

}

 

</script>
</head>
<body marginwidth="0" marginheight="0">

    <form method="post" name="frm1" onSubmit="javascript: decide_action();" action="">

	  <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr valign="top"> 
          <td width="25%">Aan wie wilt u uw vraag / opmerking richten</td>
          <td width="4%" align="center">:</td>
          <td width="71%"> <input type="radio" name="ch" value="one" />
            Aan het secretariaat 
<br /> <input type="radio" name="ch" value="two" />
            Aan de ledenadministratie<br /> <input type="radio" name="ch" value="three" />
            Ik heb een algemene vraag of opmerking<br /> </td>
        </tr>
        <tr valign="top"> 
          <td>Naam</td>
          <td align="center">:</td>
          <td><input type="text" name="naam" size="20"></td>
        </tr>
        <tr valign="top"> 
          <td>E-mailadres</td>
          <td align="center">:</td>
          <td><input type="text" name="email" size="20"></td>
        </tr>
        <tr valign="top"> 
          <td>Telefoonnummer</td>
          <td align="center">:</td>
          <td><input name="telefoon" type="text" id="telefoon" size="20"></td>
        </tr>
        <tr valign="top"> 
          <td>Uw vraag of opmerking</td>
          <td align="center">:</td>
          <td><textarea rows="8" name="tekst" cols="50"></textarea></td>
        </tr>
        <tr> 
          <td><input type="submit" name="verzend" value="Verzenden"></td>
          <td align="center">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
</form>
       </body>
</html>
 
De php-tags zijn voor het scrollvakje met de mooie kleuren. ;)
HTML:
 en [code] [/noparse] kunnen ook. :)

Dit zou het goed moeten doen: [php]<html> 
<head> 
    <title>test</title> 
    <link rel="stylesheet" type="text/css" href="../css/content.css" /> 
</head> 
<style> 
BODY { 
 margin: 0px 0px 0px 0px; 
} 

</style> 

<script language="javascript"> 

 function decide_action(act) {
  document.frm1.action = act;
  };

 function check_buttons() {
  if (document.frm1.action != '') return true;
  alert('Kies of u dit bericht wilt richten aan het secretariaat of de ledenadministratie.');
  return false;
  };

</script>

</head>
<body marginwidth="0" marginheight="0"> 

    <form method="post" name="frm1" onSubmit="return check_buttons()" action="">

      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
        <tr valign="top">  
          <td width="25%">Aan wie wilt u uw vraag / opmerking richten</td> 
          <td width="4%" align="center">:</td> 
          <td width="71%"> <input type="radio" name="ch" value="one" onclick="decide_action('actie.php')" /> 
            Aan het secretariaat  
<br /> <input type="radio" name="ch" value="two" onclick="decide_action('actie2.php')" /> 
            Aan de ledenadministratie<br /> <input type="radio" name="ch" value="three" onclick="decide_action('actie.php')" /> 
            Ik heb een algemene vraag of opmerking<br /> </td> 
        </tr> 
        <tr valign="top">  
          <td>Naam</td> 
          <td align="center">:</td> 
          <td><input type="text" name="naam" size="20"></td> 
        </tr> 
        <tr valign="top">  
          <td>E-mailadres</td> 
          <td align="center">:</td> 
          <td><input type="text" name="email" size="20"></td> 
        </tr> 
        <tr valign="top">  
          <td>Telefoonnummer</td> 
          <td align="center">:</td> 
          <td><input name="telefoon" type="text" id="telefoon" size="20"></td> 
        </tr> 
        <tr valign="top">  
          <td>Uw vraag of opmerking</td> 
          <td align="center">:</td> 
          <td><textarea rows="8" name="tekst" cols="50"></textarea></td> 
        </tr> 
        <tr>  
          <td><input type="submit" name="verzend" value="Verzenden"></td> 
          <td align="center">&nbsp;</td> 
          <td>&nbsp;</td> 
        </tr> 
      </table> 
</form> 
       </body> 
</html>[/php] Bij het verzenden wordt de check-functie aangeroepen met [color=blue]onSubmit="return check_buttons()"[/color] Die kijkt of er een action is, zo ja dan wordt het verzonden door de [color=blue]return true;[/color] Anders krijg je de alert en wordt het verzenden afgebroken door de [color=blue]return false;[/color].

De action, waarheen het verzonden wordt, wordt bepaalt door de [color=blue]onclick="decide_action('actie.php')"[/color] in de radio buttons. :)


Vr.Gr. Egel.[/font]
 
Dag Egel,

Super, bedankt!
Het werkt perfekt...

Groetjes Valletta :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan