Avatar billede sneakraid Nybegynder
18. oktober 2005 - 11:14 Der er 5 kommentarer og
1 løsning

udfyld formular?

Hej experter :)

Jeg er i gang med et lille projekt, hvor jeg har en stor formular opstillet og det man indtaster bliver tilføjet i databasen. Jeg vil gerne vide om man kan trykke på en checkbox og så udfylder den selv nogle input's? Er det noget der kan lade sig gøre og i så fald kan i lede mig lidt på vej ? :)
Avatar billede softspot Forsker
18. oktober 2005 - 11:21 #1
Det kan du godt. Så skal du reagere på checkboksens onclick-event og lave den ønskede kode. Eksempel:

<html>
<head>
<script type="text/javascript">
function fillForm(obj) {
  if(obj) {
    if(obj.checked) {
      obj.form.navn.value = "Navnet";
      obj.form.adresse.value = "Adressen";
    }
    else {
      obj.form.navn.value = "";
      obj.form.adresse.value = "";
    }
  }
  return true;
}
</script>
</head>
<body>
<form method="post">
  <input type="checkbox" onclick="fillForm(this)">Udfyld<br>
  Navn: <input type="text" name="navn"><br>
  Adresse: <input type="text" name="adresse"><br>
  <input type="submit" name="send" value="send">
</form>
</body>
</html>
Avatar billede sneakraid Nybegynder
18. oktober 2005 - 12:41 #2
Du er jo gud til det der softspot .. tak skal du ha !

Men nu jeg alligevel er i gang med javascript. Kan jeg så gøre sådan at hvis jeg har nogle radio buttons ("Ja" og "Nej")(default skal den stå på Nej), at der bliver vist et text felt nedenunder, så snart man skifter til ja ?

Men ellers, så smid lige et svar softspot :)
Avatar billede softspot Forsker
18. oktober 2005 - 12:57 #3
Nåeh, det er nu ikke så kompliceret, så jeg holder mig bare til der hvor jeg tror jeg magter opgaven :)


<html>
<head>
<script type="text/javascript">
function fillForm(obj) {
  if(obj) {
    if(obj.checked) {
      obj.form.navn.value = "Navnet";
      obj.form.adresse.value = "Adressen";
    }
    else {
      obj.form.navn.value = "";
      obj.form.adresse.value = "";
    }
  }
  return true;
}
function setTextState(obj) {
  var ct = document.getElementById("betingetTekst");
  if(obj && ct) {
    if(obj.value=="Ja")
      ct.style.display = 'block';
    else
      ct.style.display = 'none';
  }
  return true;
}
</script>
</head>
<body>
<form method="post">
  <input type="checkbox" onclick="fillForm(this)">Udfyld<br>
  Navn: <input type="text" name="navn"><br>
  Adresse: <input type="text" name="adresse"><br>
  <input type="radio" name="betTxt" onclick="setTextState(this)" value="Ja">Ja<br>
  <input type="radio" name="betTxt" onclick="setTextState(this)" value="Nej">Nej<br>
  <div id="betingetTekst" style="display:none">
    Betinget tekst: <input type="text" name="betinget"><br></div>
  <input type="submit" name="send" value="send">
</form>
</body>
</html>
Avatar billede softspot Forsker
18. oktober 2005 - 13:00 #4
Et alternativ til at klare den første opgave var at præudfylde formularen med værdierne og så nulstille ved load. Således:

<html>
<head>
<script type="text/javascript">
window.onload = function() {
  document.forms["frm"].navn.value = "";
  document.forms["frm"].adresse.value = "";
}
</script>
</head>
<body>
<form name="frm" method="post">
  <input type="checkbox" onclick="this.form.reset()">Udfyld<br>
  Navn: <input type="text" name="navn" value="Navnet"><br>
  Adresse: <input type="text" name="adresse" value="Adressen"><br>
  <input type="submit" name="send" value="send">
</form>
</body>
</html>
Avatar billede softspot Forsker
18. oktober 2005 - 13:49 #5
Tak for point :)
Avatar billede sneakraid Nybegynder
18. oktober 2005 - 14:25 #6
Selv tak .. det virkede PERFEKT :)
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