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

时间:2010-06-04 20:08:57

标签: jquery

我想让一个文本字段自动填充其他文本字段所输入的内容。

我该怎么做?

谢谢! 哈德森

5 个答案:

答案 0 :(得分:35)

简短而简单:

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

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

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

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

<强>更新

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

虽然可以使用keyupkeydown也会产生相同的奇怪结果)。

答案 1 :(得分:7)

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

答案 2 :(得分:6)

替代方案:

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

答案 3 :(得分:5)

简单: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());
});

答案 4 :(得分:0)

Router::scope('/', function (RouteBuilder $routes) {
/**
 * Here, we are connecting '/' (base path) to a controller called 'Pages',
 * its action called 'display', and we pass a param to select the view file
 * to use (in this case, src/Template/Pages/index.ctp)...
 */
   $routes->connect('/index', ['controller' => 'Pages', 'action' => 'index']);
}