2010-02-18 5 views
10

Supposons qu'une entrée est créée dans une zone de texte. Est-il possible de conserver le même texte saisi dans une deuxième zone de texte? Si oui, comment cela est-il fait?Copie du contenu d'une zone de texte dans une autre

<html> 
<label>First</label><input type="text" name="n1" id="n1"> 
<label>Second</label><input type="text" name="n1" id="n1"/> 
</html> 

Merci.

Répondre

28
<script> 
function sync() 
{ 
    var n1 = document.getElementById('n1'); 
    var n2 = document.getElementById('n2'); 
    n2.value = n1.value; 
} 
</script> 
<input type="text" name="n1" id="n1" onkeyup="sync()"> 
<input type="text" name="n2" id="n2"/> 
+0

Merci ......................... – Hulk

+0

simple, simultanée, parfaite! – Drew

+0

Vous pouvez généraliser cette fonction en ajoutant deux paramètres: le champ 'input_field' (qui sera généralement passé comme' this') et la chaîne représentant l'identifiant de l'élément que vous voulez copier. Ensuite, vous pouvez remplacer la variable n1 par 'input_field'. –

3
<html> 
<script type="text/javascript"> 
function copy() 
{ 
    var n1 = document.getElementById("n1"); 
    var n2 = document.getElementById("n2"); 
    n2.value = n1.value; 
} 
</script> 
<label>First</label><input type="text" name="n1" id="n1"> 
<label>Second</label><input type="text" name="n2" id="n2"/> 
<input type="button" value="copy" onClick="copy();" /> 
</html> 
2

Eh bien, vous avez deux zones de texte avec le même ID. Un identifiant doit être unique, donc vous devriez probablement changer cela.

Pour définir la valeur d'une zone de texte à l'autre d'un simple appel à getElementById() devrait suffire:

document.getElementById("n1").value= document.getElementById("n2").value; 

(en supposant, bien sûr, vous donnez votre zone de texte secodn un id de n2)

Tie ceci jusqu'à un clic de bouton pour le faire fonctionner.

+1

'.value' vous vouliez taper là, non? –

2

Cela a fonctionné pour moi et il ne pas utiliser JavaScript:

<form name="theform" action="something" method="something" /> 
<input type="text" name="input1" onkeypress="document.theform.input2.value = this.value" /> 
<input type="text" name="input2" /> 
</form> 

I found the code here

+2

Techniquement, cela _does_ utilise Javascript, mais vous avez raison de ne pas avoir à importer un script séparé pour le faire. –

5

plus efficacement, il peut se faire que: Pour celui qui verra le poste devrait maintenant utilisez les meilleures pratiques de javascript.

<script> 
function sync(textbox) 
{ 
    document.getElementById('n2').value = textbox.value; 
} 
</script> 
<input type="text" name="n1" id="n1" onkeyup="sync(this)"> 
<input type="text" name="n2" id="n2"/> 
+0

Votez pour l'utilisation des meilleures pratiques! –

1

Utiliser l'événement "oninput". Cela donne un comportement plus robuste. Il va également déclencher la fonction de copie lorsque vous copiez le paste.

+1

Pourriez-vous ajouter un exemple de ceci? –

Questions connexes