Jquery:将一个文本输入镜像到另一个

我希望有一个文本字段自动填充其他任何文本字段都被输入其中。

我该怎么做?

谢谢! 哈德森

简短而简单:

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

或者将它绑定到多个事件,以便在它失去焦点时更新它:

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

参考: .keypress() .val() .keypress() .val() .blur() .bind()

更新:

由于我出于神秘的原因,当输入第一个字符时,它不会在另一个输入字段中设置。 有谁有任何想法? ;)

它通过使用keyupkeydown也产生相同的奇怪结果)。

Dustin Diaz使用jQuery为Twitter Widget编写了一个精彩的镜像

 $.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'); 

替代方案:

 $('#idfield1').bind('keyup keypress blur', function() { $('#idfield2')[0].value = $(this)[0].value; }); 

要么

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

对于更新版本的jQuery,您也可以使用.on

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

简单: http : //jsfiddle.net/brynner/KnXJc/

HTML

   

jQuery的

 $('.mirror').on('keyup', function() { $('.'+$(this).attr('class')).val($(this).val()); }); 
 $( 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(); }); }); });