Avatar billede arnbjerg Nybegynder
03. januar 2010 - 10:50 Der er 6 kommentarer og
1 løsning

Hvordan laver jeg en radio knap required?

Hej

Jeg har en formular, hvor jeg har brug for at tilføje et par radioknapper. Jeg vil gerne sikre mig, at brugeren foretager et valg før submit. Er der nogen der kan fortælle mig hvordan jeg gør?
Avatar billede public2 Nybegynder
03. januar 2010 - 11:08 #1
Du kan jo eventuelt lave det i JavaScript hvor du tjekker på om én af dine radio knapper er blevet aktiveret, f.eks. sådan et script her:

<html>
<head>
<title>Validator</title>
<script language="JavaScript">
function valbutton(thisform) {
  myOption = -1;
  for (i=thisform.myradiobutton.length-1; i > -1; i--) {
    if (thisform.myradiobutton[i].checked) {
      myOption = i; i = -1;
    }
  }
  if (myOption == -1) {
    alert("Vaelg en radio knap");
    return false;
  }
  else {
    alert("Du har valgt knap nummer " + thisform.myradiobutton[myOption].value);
    return true;
  }
}
</script>


</head>
<body>
<form name="myform">
<input type="radio" value="1" name="myradiobutton" />Nummer 1<br />
<input type="radio" value="2" name="myradiobutton" />Nummer 2<br />
<input type="radio" value="3" name="myradiobutton" />Nummer 3<br /> <br />
<input type="submit" name="submitit" onclick="valbutton(myform);return false;" value="Validate" />
<input type="reset" name="reset" value="Clear" />
</form>
</body>
</html>
Avatar billede repox Seniormester
03. januar 2010 - 12:09 #2
Javascript? suk..

Hvordan ser din nuværende kildekode ud til din kontaktformular? Smid gerne den radio knap ind som du gerne vil have med, så kan vi nøjes med bare at finde ud af hvordan du kontrollerer den.
Avatar billede public2 Nybegynder
03. januar 2010 - 18:59 #3
Sig mig, er der et problem med javascript til sådan en opgave, udover de religiøse holdninger til diverse scripts og sprog?

Det klarer opgaven ganske udmærket, men selvfølgelig kan det da klares med PHP også. Og hvis det er for at blive fri for den mindre kønne "alert", så kan det også omgås.

Når der ikke er mere information omkring spørgsmålet er det jo svært lige at vide hvordan brugeren vil have det klaret. Det javascript overstående, som du tilsyneladende ikke bryder dig om, klare efter min opfattelse, opgaven ganske glimrende.
Avatar billede repox Seniormester
03. januar 2010 - 19:08 #4
Det undrer mig lidt at der kommer en ren javascriptløsning på noget som er meget simpelt løst gennem PHP - i en kategori henvendt til spørgsmål vedrørende PHP - det er jo ikke engang fordi der er noget der hænger sammen med PHP i din løsning.

Ikke desto mindre, så er det jo meget heldigt at du synes opgaven er fint løst på den måde. For mig er det dog den mest usikre måde at validere brugerens input på (næstefter slet ikke at validere).
Hvis jeg ikke har fuld kontrol over det jeg får ind alligevel, så er der slet ikke nogen grund til at validere...
Avatar billede public2 Nybegynder
03. januar 2010 - 19:39 #5
Men så vil jeg da anbefale brugeren at lave en simpel validering i PHP, hvor han tjekker på sine radio knapper om hvilke der er sat eller ingen er sat.

$error_msg = array();
  if(!isset($_POST['radioknapper'])){
    $error_msg[] = "Du skal vaelge en radio knap";
  } else {
    echo "... hvad der skal ske, evt. tjek om hvilken radioknap der er blevet valgt.";
    $radiobuttonvalue = $_POST['radioknapper'];
  }

Og HTML'en:

<input type="radio" name="radioknapper" value="1" />
<input type="radio" name="radioknapper" value="2" />

Har ikke kontrolleret det, men i den dur burde også gøre tricket, og så er det yderligere også muligt at tjekke for om det input i radio-knapperne er i overensstemmelse med det, det skal være.
Avatar billede arnbjerg Nybegynder
04. januar 2010 - 08:16 #6
Javascript er fint til mig - de øvrige felter i formularen bliver også tjekket med javascript.

public2: Jeg kan ikke umiddelbart finde ud af at indsætte din kode i min eksisterende kode. Kan du hjælpe mig?

<script type="text/JavaScript">
<!--
function valider ( form ) {
  if ( form.firma.value.length > 0 ) {
  } else {
      alert ("Feltet Firma skal udfyldes.");
      form.firma.focus();
      return false;
  };

if ( form.navn.value.length > 0 ) {
  } else {
      alert ("Feltet Navn skal udfyldes.");
      form.navn.focus();
      return false;
  };
 
  if ( form.adresse.value.length > 0 ) {
  } else {
      alert ("Feltet Adresse skal udfyldes.");
      form.adresse.focus();
      return false;
  };

  if (  ( form.postnr.value.length > 3 )
        &&( parseInt( form.postnr.value ) > 1000 )
      ) {
  } else {
      alert ("Feltet Postnummer er ikke udfyldt med dansk postnummer.");
      form.postnr.focus();
      return false;
  };
 
  if ( form.by.value.length > 0 ) {
  } else {
      alert ("Feltet By skal udfyldes.");
      form.by.focus();
      return false;
  };
 
  if ( form.country.value.length > 0 ) {
  } else {
      alert ("Feltet Land skal udfyldes.");
      form.country.focus();
      return false;
  };
 
  if ( form.tlf.value.length > 7 ) {
  } else {
      alert ("Feltet Tlf. er ikke udfyldt med dansk telefonnummer.");
      form.tlf.focus();
      return false;
  };
 
if ( /^[\da-z\._\-]{1,50}@[\da-z\._\-]{1,50}\.[\da-z_]{1,3}$/.test(form.mail.value) ) {
  } else {
      alert ("Feltet Mail er ikke udfyldt med en e-mail adresse.");
      form.mail.focus();
      return false;
  }; 

  return true;
};   
</script>
<div class="white">
<form method="post" onSubmit="return valider(this);" action="bekraeft.php" name="bestil" id="form">
  <table><tr><td class="txt" style="padding-top:5px; padding-bottom:5px; width:90px">Firma</td>
      <td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="firma" type="text" id="firma" size="50"></td>
  </tr>
  <tr><td style="padding-top:5px; padding-bottom:5px">Navn</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="navn" type="text" id="navn" size="50"></td></tr>
  <tr><td style="padding-top:5px; padding-bottom:5px">Adresse</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="adresse" type="text" id="adresse" size="50"></td></tr>
  <tr><td style="padding-top:5px; padding-bottom:5px"></td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="adresse2" type="text" id="adresse2" size="50"></td></tr>
  <tr>
    <td style="padding-top:5px; padding-bottom:5px">Postnummer</td><td style="padding-top:5px; padding-bottom:5px; width:105px"><input name="postnr" type="text" id="postnr" size="10"></td>
    <td style="padding-top:5px; padding-bottom:5px; width:30px">By</td>
    <td style="padding-top:5px; padding-bottom:5px"><input name="by" type="text" id="by" size="27"></td>
  </tr>
  <tr><td style="padding-top:5px; padding-bottom:5px">Land</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="country" type="text" id="country" size="50"></td></tr>
  <tr><td style="padding-top:5px; padding-bottom:5px">Tlf.</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="tlf" type="text" id="tlf" size="50"></td></tr>
  <tr><td style="padding-top:5px; padding-bottom:5px">Mail</td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><input name="mail" type="text" id="mail" size="50"></td>
  </tr>
  <tr><td style="padding-top:5px; padding-bottom:5px"></td><td colspan="3" style="padding-top:5px; padding-bottom:5px"><div align="right" style="width:325px">
    <input name="send" type="submit" id="send" value="Send">
  </div></td></tr></table>
</form>
<div></div></div>
Avatar billede arnbjerg Nybegynder
04. august 2010 - 09:46 #7
Hmmm. Lukker
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

IT-JOB

Netcompany A/S

Linux Operations Engineer

Csis Security Group A/S

Sales Executive

Netcompany A/S

Test Consultant

Capgemini Danmark A/S

Finance Lead (SAP)