Avatar billede c-lund Nybegynder
16. december 2009 - 09:33 Der er 4 kommentarer

Form felter

Hej Exp

Jeg skal bruge et lille javascript det kan tjekke op på om nogle af felterne i en formular er udfyldt eller ej. Jeg ved ikke helt hvordan man skal gøre det, da jeg ikke er så rotineret i javascript.

Min formular ser ca sådan ud. og det er felterne med Id=Option jeg gerne vil tjekke om indeholder data. Jeg ved ikke hvor mange felter der komme til at være, så scriptet skal fungere med en lykke. Håber i kan hjælpe

<form action="" method="post" name="GivPris">

<input type="text" name="Pris" value="">

<input type="text" id="Option" name="Andet1" value="">
<input type="text" id="Option" name="Andet2" value="">
<input type="text" id="Option" name="Andet3" value="">

<input type="text" name="Dato" value="">

<a href="#" onclick="AcceptForm('GivPris');">OK</a>

</form>

<script>
function AcceptForm(FormName) {



}
</script>
Avatar billede mireigi Novice
16. december 2009 - 16:26 #1
For det første bør du ikke anvende samme ID-tag på forskellige objekter.

Umiddelbart ville jeg dog løse dit problem således:

<script type="text/javascript">
  function validateForm(f)
  {
    var valid = true;
    var pris = 0;
    var arrOptions = document.getElementsByName("Pris");
    for (var i = 0; i < arrOptions.length; i++)
    {
      var obj = arrOptions[i];
      if (obj.checked || obj.checked == "checked")
      {
        if (obj.id != "PrisAndet")
          pris = obj.value;
        else
          pris = f.Andet.value;
      }
    }

    if (pris == 0)
      valid = false;

    if (valid)
      f.ValgtPris.value = pris;

    return valid;
  }
</script>


<form action="" method="post" name="GivPris" onsubmit="return validateForm(this)">
  <input type="hidden" name="ValgtPris" id="ValgtPris" value="0" />
  <input type="radio" name="Pris" id="Pris1" value="10000"><label for="Pris1">5000-10000</label>
  <input type="radio" name="Pris" id="Pris2" value="15000"><label for="Pris2">10001-15000</label>
  <input type="radio" name="Pris" id="Pris3" value="20000"><label for="Pris3">15001-20000</label>
  <input type="radio" name="Pris" id="PrisAndet" value="0"><label for="PrisAndet">Andet</label>
  <input type="text" name="Andet" />

  <input type="Submit" />
</form>


Vær opmærksom på at koden ikke er testet, men den burde fungere fint.
Avatar billede c-lund Nybegynder
16. december 2009 - 20:44 #2
Det skal desværre være Text felter. hvad hvis vi så gør sådan.

<form action="" method="post" name="GivPris">

<input type="text" name="Pris" value="">

<div id="Option">
<input type="text" name="Andet1" value="">
<input type="text" name="Andet2" value="">
<input type="text" name="Andet3" value="">
</div>

<input type="text" name="Dato" value="">

<a href="#" onclick="AcceptForm('GivPris');">OK</a>

</form>
Avatar billede mireigi Novice
16. december 2009 - 22:27 #3
Jeg er ikke helt sikker på at jeg kan følge dig hvis det skal være tekstfelter. Ville det ikke være en bedre idé med kun ét tekstfelt til at skrive prisen i? Det virker som overkill at have mere end ét felt til at angive en pris.
Avatar billede c-lund Nybegynder
17. december 2009 - 09:59 #4
Da ikke hvis der er flere priser der skal angives. I den formular jeg har, skal man angive en pris for et projekt samt nogle priser for divs tilbehør.

<div id="Option">
Tillægsprodukt 1.<input type="text" name="Andet1" value="">
Tillægsprodukt 2.<input type="text" name="Andet2" value="">
Tillægsprodukt 3.<input type="text" name="Andet3" value="">
</div>
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