2010-12-09 3 views
0

J'ai une liste déroulante qui permet aux utilisateurs de sélectionner le nombre d'entrées qu'ils ont. Ainsi, par exemple, ils veulent peut-être entrer un mot, ils en sélectionneront un. S'ils veulent entrer deux mots, ils en sélectionneront deux. En fonction de l'option choisie, je veux créer autant de zones de texte que je peux me référer à d'autres scripts (comme peut-être grâce à l'indexation).Création de plusieurs champs de saisie

Existe-t-il un moyen de le faire?

+0

Oui, il y a. Mais, vous devez utiliser JavaScript. Êtes-vous familiarisé avec? – dheerosaur

Répondre

1

Bien sûr, utilisez Javascript pour manipuler le DOM. vous pouvez le faire dans sa forme la plus simple quelque chose comme:

document.getElementById('someDiv').innerHTML += "<label>Label:</label><input type='file' value='' />"; 

Ou utiliser quelque chose comme JQuery:

var new_field = " <label>SomeLabel: </label> <input type = "text"/>"; 
$("#sonmeSelector").before(new_field); 
+0

Le javascript a bien fonctionné. Je voulais juste savoir à propos de innerHTML. – MxyL

1

voulez-vous quelque chose comme ça (fait avec jQuery 1.4.4):

HTML

<html> 
    <head> 
    <title>Multiple Input</title> 
    </head> 
    <body> 
    <select id="amount" name="amount" onchange="addInput();"> 
     <option value="1" >1</option> 
     <option value="2" >2</option> 
     <option value="3" >3</option> 
    </select> 
    <div id="inputs"> 
    </div> 
    </body> 
</html> 

JS

function addInput(){ 
    var amount = $('#amount').val(); 
    var inputs = $('#inputs').empty(); 
    for(i = 0; i < amount; i++) { 
    inputs.append('<input type="text" name="input[' + i + ']" /> '); 
    } 
} 

Regardez aussi mon jsFiddle http://jsfiddle.net/8KqUt/

Questions connexes