2010-06-04 20 views

Respuesta

34

corto y simple:

$('#idfield1').keypress(function() { 
    $('#idfield2').val($(this).val()); 
}); 

o para obligar a éste a varios eventos con el fin de actualizar también si se pierde el foco:

$('#idfield1').bind('keypress keyup blur', function() { 
    $('#idfield2').val($(this).val()); 
}); 

Referencia: .keypress(), .val(), .blur(), .bind()

Actualización:

Debido a razones misteriosas para mí, cuando se escribe primer carácter, no se establece en el otro campo de entrada. ¿Alguien tiene alguna idea? ;)

Funciona mediante el uso de keyup (keydown también produce el mismo resultado extraño).

+3

Probablemente también desee actualizar el desenfoque para capturar eventos de cortar/pegar. – tvanfosson

+0

@tvanfosson: Tienes razón. Primero pensé en el desenfoque, pero luego tuve la palabra "espejo" en mi mente y pensé que realmente debería ser sincrónica ... arreglada. –

+0

Sucede algo extraño. parece que el espejo tiene un personaje detrás. Por ejemplo, si escribo "hola persona", en el otro cuadro se lee "hola persona". ¿algunas ideas? – atwellpub

5

Para una alternativa:

o

$('#idfield1').bind('keyup keypress blur', function() 
{ 
    $('#idfield2').val($(this).val()); 
}); 

Para la versión más reciente de jQuery también se puede utilizar .on

$('#idfield1').on('keyup keypress blur', function() 
{ 
     $('#idfield2').val($(this).val()); 
}); 
5

Dustin Díaz ha escrito un espejo maravilloso para Twitter Widget usando jQuery

$.fn.mirror = function (selector) { 
    return this.each(function() { 
     var $this = $(this); 
     var $selector = $(selector); 
     $this.bind('keyup', function() { 
      $selector.val(($this.val())); 
     }); 
    }); 
}; 

Se usa como

$('#source_text_id').mirror('#destination_text_id'); 
5

simple: http://jsfiddle.net/brynner/KnXJc/

HTML

<input type="text" class="mirror" placeholder="one"> 
<input type="text" class="mirror" placeholder="two"> 

jQuery

$('.mirror').on('keyup', function() { 
    $('.'+$(this).attr('class')).val($(this).val()); 
}); 
+0

¿Cómo puedo hacer que funcione sobre iframe? –

0
$(document).ready(function() { 

    console.log("ready!"); 

    /* $(".checking").blur(function() { 
      alert("Handler for .blur() called."); 
     }); */ 
     $(".formula_open").click(function(){ 
      getval(); 
     function getval(){ 
     var schedulenameexpression= $('.idfield1').val(); 
     var res = schedulenameexpression.split(/[\s()+*-/]+/); 
     var i,text,substri,newitem; 

     for (i = 0; i < res.length; i++) { 
      text = res[i]; 
      substri = text.substr(6); 
      var name ="schid_"+substri; 
      var schname = $('#'+substri).val(); 
      console.log(schname); 
      schedulenameexpression = schedulenameexpression.replace("schid_"+substri, $("#"+substri).val()); 
     } 
     $('.idfield2').val(schedulenameexpression); 
     } 

    $('.idfield1').bind('keypress keyup blur propertychange', function() { 
     getval(); 

}); 
}); 
}); 
Cuestiones relacionadas