jquery从另一个文本框触发键盘事件到文本框

时间:2013-05-01 11:44:02

标签: jquery eventtrigger

我想发送一个关键事件来模拟来自mytext2的{​​{1}}。这意味着当我在mytext1中输入“a”时,它也会显示在mytext1中。当我按mytext2上的退格键时,它也会受到mytext1的影响。在某些情况下,mytext1除了mytext2之外什么都没有,在这种情况下,当我按mytext2上的退格键时,mytext1中的最后一个字母应该是明确的('它表示我没有希望两个文本框内容相等')。这是我的代码:

mytext2

* 甚至删除,退格事件shuld触发mytext2。就像我在mytext2上做的那样,我在最初使用不同的内容将相同的按键放在不同的文本框上

谢谢,帮助我。 ------------------更新------------------------------- ------------------------------------认为mytext1最初的值为“ca”mytext2有“bea” ,当我在$('#mytext1').on('keydown',function(e){ var keyCode = e.keyCode || e.which; $('#mytext2').trigger($.Event("keypress", { keyCode: keyCode })); }); $('#mytext1').on('keypress',function(e){ var keyCode = e.keyCode || e.which; this.val()+=keyCode; }); <input type='text' id='mytext1' value='this not eq to txt2'/> <input type='text' id='mytext2'value='this not eq to txt1'/> 上按“t”时,它应该受到mytext1的影响。然后mytext2将“猫”mytext2将“击败”。如果我在mytext1中按两次退格键,则会产生mytext1 =&gt;“c”,mytext2 =&gt;“be”。对不起我的可怜解释。

2 个答案:

答案 0 :(得分:1)

http://jsbin.com/urilox/1/edit

$('#mytext1').on('input', function() {
  $('#mytext2').val(this.value);
} );

如果您需要处理“粘贴”事件,这也是一个很好的方法。 (现代浏览器)
非现代用途:keyup paste propertychange


对于他们之间的相互沟通 - 请执行以下操作:

$('#mytext1, #mytext2').on('input', function() {
  $(this).siblings().val(this.value); // put both your inputs strictly inside a neutral parent!
} );

或只是

var $a=$('#mytext1'), $b=$('#mytext2');

$a.on('input', function() {
  $b.val(this.value);
} );
$b.on('input', function() {
  $a.val(this.value);
} );

答案 1 :(得分:0)

http://jsfiddle.net/coma/kNPRM/4/

$(function() {

    var a = $('#a');
    var b = $('#b');

    var foo = function(input, string, code) {

        switch(code) {

            case 8:
                var s = input.val();
                input.val(s.substr(0, s.length -1));
                break;

            default:
                var c = String.fromCharCode(code);

                if(c.match(/\w/)) {

                    input.val(input.val() + string.slice(-1));

                }

        }

    };

    a.on('keyup', function(event) {

        foo(b, this.value, event.keyCode);        

    });

    b.on('keyup', function(event) {

        foo(a, this.value, event.keyCode);

    });

});