08. marts 2006 - 20:24
Der er
10 kommentarer og 1 løsning
opdatering on-the-go
Jeg har lavet en side med 10 text forms, hvor brugeren skal skrive nogle navne. Men jeg ønsker ikke alle 10 skal være synlige når siden loader. Hver enkel text-form skal først komme til syne, når brugeren taster et navn i den synlige og tomme text-form. Således kan brugeren altså kun se en text-form i første omgang, og lige så snart han taster... bum... så skal der komme en ekstra. Er det muligt???
Annonceindlæg fra Computerworld
08. marts 2006 - 20:38
#1
Du skal bruge javascript... Her er et eksempel på hvordan det kunne gøres: <html> <head> <title>test</title> <script type="text/javascript"> function ch(n) { if ( n < 10 && document.getElementById('n'+n).value != '') { document.getElementById('field' + (n+1)).style.display = 'block'; } } </script> </head> <body> <form method="post" action="<?= $_SERVER['SCRIPT_NAME'] ?>"> Navn 1: <input type="text" name="n1" id="n1" onkeyup="ch(1)"><br> <?php for ( $i = 2; $i <= 10; $i++) { ?> <div id="field<?= $i ?>" style="display: none"> Navn <?= $i ?>: <input type="text" name="n<?= $i ?>" id="n<?= $i ?>" onkeyup="ch(<?= $i ?>)"><br> </div> <?php } ?> </form> </body> </html>
08. marts 2006 - 20:39
#2
fandt også en kode selv: <html> <head> <script language="JavaScript"><!-- rowArray = new Array(); rowArray[1] = '<form>Row 1: <input type="button" value="Reveal" onClick="clicked(2)"><\/form>'; rowArray[2] = 'This is some text for row 1'; rowArray[3] = '<form>Row 3: <input type="button" value="Reveal" onClick="clicked(4)"><\/form>'; rowArray[4] = 'Row 4 when clicked reveals this text'; rowArray[5] = '<form>Row 5: <input type="button" value="Reveal" onClick="clicked(6)"><\/form>'; rowArray[6] = 'Contents of the last row'; viewArray = new Array(); viewArray[1] = viewArray[3] = viewArray[5] = true; viewArray[2] = viewArray[4] = viewArray[6] = false; function refreshTable() { var output = '<table border="1" width="500">'; for (var i = 1; i <= rowArray.length; i++) { if (viewArray[i]) output += '<tr><td>' + rowArray[i] + '<\/td><\/tr>'; } output += '<\/table>'; if (document.all) document.all('myTable').innerHTML = output; else if (document.layers) { document.layers['myTable'].document.open(); document.layers['myTable'].document.writeln(output); document.layers['myTable'].document.close(); } } function clicked(x) { viewArray[x] = !viewArray[x]; refreshTable(); } //--></script> </head> <body onLoad="refreshTable()"> <span id="myTable" style="position:absolute"></span> </body> </html>
08. marts 2006 - 20:39
#3
08. marts 2006 - 20:41
#4
Et lidt mere simpelt eksempel på hvordan det kan gøres: <input type="text" name="felt1" onkeypress="getElementById('felt2').style.display='inline'"><br> <input type="text" name="felt2" style="display: none" onkeypress="getElementById('felt3').style.display='inline'"><br> <input type="text" name="felt3" style="display: none">
08. marts 2006 - 20:42
#5
Men coderdk - din kode er genial- TAK. Point??
08. marts 2006 - 20:43
#6
Ok :)
08. marts 2006 - 20:43
#7
Gå hjem, coderdk :-)
08. marts 2006 - 20:44
#8
Skal dog lige høre om man kan få den til at slette en form, hvis man "fortryder"??
08. marts 2006 - 20:50
#9
gizmo-gizmo :) jedimaster: Hvordan mener du?
08. marts 2006 - 20:54
#10
Hvis man har tastet noget i feks. Navn2 og man fortryder og sletter navnet. Formen bliver, men er der en mulighed for at fjerne den igen. Det er veinsmaecherei (Feinsmækkerei), men det kunne jo være det var muligt.
08. marts 2006 - 20:56
#11
Du kunne udskifte javascriptet med: <script type="text/javascript"> function ch(n) { if ( n < 10 && document.getElementById('n'+n).value != '') { document.getElementById('field' + (n+1)).style.display = 'block'; } else { if ( document.getElementById('n'+(n+1)).value == '') document.getElementById('field' + (n+1)).style.display = 'none'; } } </script> Men der sker nogle gange nogle underlige ting :) Skiftede også inputfeltet ud med: Navn <?= $i ?>: <input type="text" name="n<?= $i ?>" id="n<?= $i ?>" onkeypress="ch(<?= $i ?>)" onexit="ch(<?= $i ?>)"><br> Men er ikke sikker på at det var nødvendigt ;P
Vi tilbyder markedets bedste kurser inden for webudvikling