Avatar billede dth Nybegynder
03. februar 2006 - 13:01 Der er 3 kommentarer og
1 løsning

Kopiere date til andre text-felter

Hej Exp'er

Jeg har en side med x-antal text-felter, med fortløbende id'er.

Nu er mit mål at: Hvis man indtaster f.x. "10" i feltet med id="4" så skal den automatisk skrive "10" i samtlige felter med et id over 4.

Problemet her er at jeg ikke ved præcis hvor mange felter jeg har.

Håber i kan hjælpe

Vh
DTH
Avatar billede whatever Nybegynder
03. februar 2006 - 13:17 #1
Hvis felterne genereres dynamisk, kan du også finde ud af hvor felter der er. Og så kunne du lave et hidden-felt i bunden af formen med det totale antal felter. Prøv noget i retning af:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
<!--
    function updateFields(frm,id) {
        var val = frm['field' + id].value;
        var total = frm.total.value;
        for (i = id; i <= total; i++) {
            frm['field' + i].value = val;       
        }
    }
//-->
</script>
</head>
<body>
<form name="form1" method="post" action="">
  1. <input name="field1" type="text" id="field1" onkeyup="updateFields(this.form,1)" onblur="updateFields(this.form,1)" /><br />
  2. <input name="field2" type="text" id="field2" onkeyup="updateFields(this.form,2)" onblur="updateFields(this.form,2)" /><br />
  3. <input name="field3" type="text" id="field3" onkeyup="updateFields(this.form,3)" onblur="updateFields(this.form,3)" /><br />
  4. <input name="field4" type="text" id="field4" onkeyup="updateFields(this.form,4)" onblur="updateFields(this.form,4)" /><br />
  5. <input name="field5" type="text" id="field5" onkeyup="updateFields(this.form,5)" onblur="updateFields(this.form,5)" /><br />
  6. <input name="field6" type="text" id="field6" onkeyup="updateFields(this.form,6)" onblur="updateFields(this.form,6)" /><br />
  7. <input name="field7" type="text" id="field7" onkeyup="updateFields(this.form,7)" onblur="updateFields(this.form,7)" /><br />
  8. <input name="field8" type="text" id="field8" onkeyup="updateFields(this.form,8)" onblur="updateFields(this.form,8)" /><br />
  9. <input name="field9" type="text" id="field9" onkeyup="updateFields(this.form,9)" onblur="updateFields(this.form,9)" /><br />
  10. <input name="field10" type="text" id="field10" onkeyup="updateFields(this.form,10)" onblur="updateFields(this.form,10)" /><br />
  <input type="hidden" name="total" value="10" />
</form>
</body>
</html>
Avatar billede whatever Nybegynder
03. februar 2006 - 13:18 #2
Ønsker du at køre på id'erne i stedet, kan du ændre javascript funktionen til:

  function updateFields(frm,id) {
        var val = document.getElementById('field' + id).value;
        var total = frm.total.value;
        for (i = id; i <= total; i++) {
            document.getElementById('field' + id).value = val;     
        }
    }
Avatar billede dth Nybegynder
03. februar 2006 - 13:33 #3
Hejsa

Mange tak, jeg er nødt til at køre scriptet på id'et da jeg skal bruge name til at arbejde videre med i ASP.

Jeg kunne ikke få det til at virke i første omgang men fandt fejlen i din kode:
document.getElementById('field' + id).value = val; skal jo være document.getElementById('field' + i).value = val; :-D

Vh
DTH
Avatar billede whatever Nybegynder
03. februar 2006 - 13:38 #4
Funktionen der benyttede id'et var ikke testet, men godt du fandt fejlen. Tak for pointene.
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

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