2 input velden in een loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan West

Johan West

05/09/2015 09:48:03
Quote Anchor link
Hallo, ik heb hier een stukje javascript maar de code werkt niet zoals ik het zou willen.

Het oorspronkelijke script is er 1 waarbij je 1 input veld hebt en als je deze in heb gevuld wordt er automatisch een input veld toegevoegd.

Omdat ik 2 input velden wil laten invoeren en daarna nog 2 totdat de limiet is bereikt heb ik het aangepast maar het script vertoont kuren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<html>

<head>
<script>
var counter = 1;
var limit = 5;
function addInput(divName){
     if (counter > limit)  {
          alert("Je hebt de limit overschreden omdat de invoer  meer dan " + counter + " is");
     }
     else {
          var newdiv = document.createElement('div');
          
          newdiv.innerHTML = "Naam " + (counter + 1) + " <br><input type='text' name='Naam[]'>";
          newdiv.innerHTML = "Webadres " + (counter + 1) + " <br><input type='text' name='Webadres[]'>";
          document.getElementById(divName).appendChild(newdiv);
          counter++;
     }
}


</script>
</head>

<body>
<form method="POST">

     <div id="dynamicInput">
          Naam<br><input type="text" name="Naam[]"><br>
          
    
         Webadres<br><input type="text" name="Webadres[]">  
          
     </div>
    
    
     <input type="button" value="Verzenden" onClick="addInput('dynamicInput');">
</form>
</body>

</html>


Hoe krijg ik n maal 2 input velden netjes onder elkaar?
 
PHP hulp

PHP hulp

20/04/2024 09:03:51
 
DavY -

DavY -

05/09/2015 10:17:36
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
newdiv.innerHTML = "Naam " + (counter + 1) + " <br><input type='text' name='Naam[]'>";
newdiv.innerHTML = "Webadres " + (counter + 1) + " <br><input type='text' name='Webadres[]'>";


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
newdiv.innerHTML = "Naam " + (counter + 1) + " <br><input type='text' name='Naam[]'><br />" +
"Webadres " + (counter + 1) + " <br><input type='text' name='Webadres[]'>";


Demo: http://codepen.io/anon/pen/MaYPPo
 
- SanThe -

- SanThe -

05/09/2015 10:18:24
Quote Anchor link
Op regel 15 overschrijf je newdiv.innerHTML met een nieuwe waarde.
Dat gaat dus fout.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
newdiv.innerHTML = "Naam " + (counter + 1) + " <br><input type='text' name='Naam[]'><br>Webadres " + (counter + 1) + " <br><input type='text' name='Webadres[]'>";
 
Johan K

Johan K

05/09/2015 10:48:00
Quote Anchor link
Ik zou dit anders aanpakken, inplaats van nieuwe elementen te maken maak ze voor de hand en laat ze alleen niet zien aan de gebruiker. Dan kan je javascript gebruiken om deze te laten zien als nodig is.

Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<style>
 .hide{
  display: none;
 }
</style>
<script type="text/javascript">
 function meh(id){
  if(id==3){
    return false; // submit form?
  }
  c[id].className ='';
 }
</script>
<form id="dynform">
 <div>
  <label>naam</label>
  <input type="text" onchange="meh(1)"></input>
 </div>
 <div>
  <label>address</label>
  <input type="text" onchange="meh(2)"></input>
 </div>
 <div>
  <label>something</label>
  <input type="text" onchange="meh(3)"></input>
 </div>
</form>

<script type="text/javascript">
    var f = document.getElementById('dynform');        
    var c = f.children;        
    for(i = 1; i < c.length; i++) {                    
      c[i].className ='hide';
    }
</script>
 
Thomas van den Heuvel

Thomas van den Heuvel

05/09/2015 11:24:33
Quote Anchor link
Fair enough, en nog een aanvulling: gebruik een JavaScript framework (bijvoorbeeld jQuery) zodat je ook een (wat betere) garantie hebt dat alles ook cross browser compatible is.

Daarmee maak je het ook minder "obtrusive" - de onclick-/onchange- etc. events kun je dan uit je HTML halen.
Gewijzigd op 05/09/2015 11:25:51 door Thomas van den Heuvel
 
Johan West

Johan West

05/09/2015 12:37:11
Quote Anchor link
Goed

bedankt mensen voor de hulp.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.