2010-06-04 2 views

ответ

34

Короткий и простой:

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

или привязать его к нескольким событиям, чтобы обновить его и, если он теряет фокус:

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

Ссылка: .keypress(), .val(), .blur(), .bind()

Обновление:

Из-за таинственных причин, когда набирается символ , первый символ, он не установлен в другом поле ввода. У кого-нибудь есть идея? ;)

Он работает, хотя с использованием keyup (keydown также производит тот же странный результат).

+3

Возможно, вы захотите обновить размытие, чтобы захватить события вырезания/вставки. – tvanfosson

+0

@tvanfosson: Вы правы. Сначала я думал о размытии, но потом у меня было слово «зеркало», и я подумал, что это действительно должно быть синхронно ... исправлено. –

+0

Странный предмет бывает. Кажется, что зеркало - один символ. Например, если я набираю «hello person», в другом поле читается «hello perso». есть идеи? – atwellpub

5

Для альтернативы:

или

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

Для более поздней версии JQuery вы можете также использовать .on

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

Dustin Diaz написал замечательное зеркало для Twitter Виджет с использованием jQuery

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

Используйте его как

$('#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

Как я могу заставить его работать над 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(); 

}); 
}); 
}); 
Смежные вопросы