2010-02-18 11 views
10

Załóżmy, że wpis jest w polu tekstowym. Czy możliwe jest zachowanie tego samego wprowadzonego tekstu w drugim polu tekstowym? Jeśli tak, jak to się robi?Skopiuj zawartość jednego pola tekstowego na inny

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

Dzięki.

Odpowiedz

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

Dzięki ......................... – Hulk

+0

proste, jednoczesne, idealne! – Drew

+0

Możesz uogólnić tę funkcję, dodając dwa parametry: 'input_field' (które zazwyczaj są przekazywane jako' this') oraz ciąg znaków reprezentujący identyfikator elementu, do którego chcesz skopiować. Następnie możesz zamienić zmienną n1 na '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

Masz dwa pola tekstowe o tym samym ID. Identyfikator powinien być unikalny, więc należy to zmienić w sposób praski.

Aby ustawić wartość z jednego pola tekstowego do drugiego proste wywołanie getElementById() powinno wystarczyć:

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

(zakładając oczywiście dajesz polu tekstowym secodn identyfikator z n2)

Tie aż do kliknięcia przycisku, aby działało.

+1

'.value', co miałeś zamiar tam wpisać, prawda? –

2

ten pracował dla mnie i nie używa 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

Technicznie, _do_używa JavaScript, ale masz rację, że nie musisz importować oddzielnego skryptu, aby to zrobić. –

5

bardziej efektywnie można to zrobić tak: Dla kogoś, kto zobaczy post powinien teraz korzystaj z najlepszych praktyk 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

Głosuj za skorzystaniem ze sprawdzonych metod! –

1

Użyj zdarzenia "oninput". Zapewnia to bardziej niezawodne zachowanie. Spowoduje to również uruchomienie funkcji kopiowania podczas kopiowania wklejania.

+1

Czy możesz dodać przykład tego? –

Powiązane problemy