Jquery:将一个文本输入镜像到另一个
我希望有一个文本字段自动填充其他任何文本字段都被输入其中。
我该怎么做?
谢谢! 哈德森
简短而简单:
$('#idfield1').keypress(function() { $('#idfield2').val($(this).val()); });
或者将它绑定到多个事件,以便在它失去焦点时更新它:
$('#idfield1').bind('keypress keyup blur', function() { $('#idfield2').val($(this).val()); });
参考: .keypress()
.val()
.keypress()
.val()
.blur()
.bind()
更新:
由于我出于神秘的原因,当输入第一个字符时,它不会在另一个输入字段中设置。 有谁有任何想法? ;)
它通过使用keyup
( keydown
也产生相同的奇怪结果)。
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(); }); }); });