Copie el texto de un campo en otro automáticamente

Necesito copiar el texto ingresado en un campo (ya sea que haya sido ingresado, pegado o de autocompletado del navegador) y pegarlo en otro campo, ya sea al mismo tiempo o tan pronto como el usuario cambie a otro campo.

Si el usuario elimina el texto en el campo_1, también debería eliminarse automáticamente en el campo_2.

Lo he intentado pero no funciona:

 $(document).ready(function () { function onchange() { var box1 = document.getElementById('field_1'); var box2 = document.getElementById('field_2'); box2.value = box1.value; } });  

¿Algunas ideas?

Ya casi estás ahí … La función es correcta, solo tienes que asignarla al evento de change de la entrada:

  

Si está utilizando jQuery, es muy fácil; solo necesita registrar la función correcta en el evento correcto 🙂

Aquí está el código:

   $(function(){ var $foo = $('#foo'); var $bar = $('#bar'); function onChange() { $bar.val($foo.val()); }; $('#foo') .change(onChange) .keyup(onChange); }); 

JSFiddle : http://jsfiddle.net/6khr8e2b/

Llamar al método de cambio onchange() en el primer elemento onblur

  

prueba con el evento keyup

    $('#box_1').keyup(function(){ $('#box_2').val($(this).val()); }) 

Pruebe algo como:

 $(document).ready(function () { $('#field_1').on('change', function (e) { $('#field_2').val($('#field_1').val()); }); }); 

Aquí hay un violín: http://jsfiddle.net/otwk92gp/

Debe vincular la primera entrada a un evento. Algo como esto funcionaría:

 $(document).ready(function(){ $("#a").change(function(){ var a = $("#a").val(); $("#b").val(a); }); }); 
    
 $(document).ready(function() { $('.textBox1').on('change', function() { $('.textBox2').val($(this).val()); }); }); 
    

Si desea que el valor del segundo campo se actualice al mismo tiempo que el primero, puede manejarlo con un tiempo de espera excedido.

Cada vez que se presiona una tecla, ejecutará la función checkValue en la siguiente stack de la ejecución. Entonces, el valor del field1 en el DOM ya se actualizará cuando se llame a esta función.

 var $field1 = $("#field_1"); var $field2 = $("#field_2"); $field1.on("keydown",function(){ setTimeout(checkValue,0); }); var v2 = $field2.val(); var checkValue = function(){ var v1 = $field1.val(); if (v1 != v2){ $field2.val(v1); v2 = v1; } };