2013-05-01 53 views
0

我想要发送一个关键事件来模拟从mytext1mytext2。这意味着当我在mytext1中输入“a”时,它也应该在mytext2中显示。另外,当我在mytext1上按下退格键时,它也应该影响到mytext2。在某些情况下,mytext1只剩下mytext2剩下的东西,在这种情况下,当我按下退格键mytext1它应该清除mytext2('它说我不希望两个文本框内容都相同')的最后一个字母。这里是我的代码:jquery触发从另一个文本框中的文本框的关键事件

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

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

thnks,帮帮我。 ------------------ update ------------------------------ -------------------------------------认为最初mytext1有一个值“ca”mytext2有“bea “,当我在mytext1上按”t“时,应该影响到mytext2。那么mytext1将“猫”mytext2将“击败”。如果我在mytext1中按退格键两次,将会得到mytext1 =>“c”,mytext2 =>“be”。对于我糟糕的说明感到抱歉。

+0

'val'是一个jQuery对象的方法,你应该编写'this.value'。 – undefined 2013-05-01 11:47:59

+0

多数民众赞成只是我的想法像$('#mytext1')。val()= ...这是指当前对象 – kbitsoft 2013-05-01 11:57:31

+0

你的想法(编辑一)似乎非常可怕,你会看到为什么玩一点解决方案后。 (*插入位置*) – 2013-05-01 12:59:40

回答

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

    }); 

}); 
+0

请看我的问题reupdated.thanks再次 – kbitsoft 2013-05-01 12:33:46

+0

谢谢。你有我。这是我第一步找到解决我的问题在这里:http://stackoverflow.com/questions/15739906/how-to-make-a-text-box-that-c​​an-directly-type -in-sinhala-unicode.if我发现了一个解决方案。你的答案会对它有所帮助。 – kbitsoft 2013-05-01 13:34:26

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

哇!好的!!我不知道这个,谢谢。 – coma 2013-05-01 11:52:16

+0

我想要两个文本框收听关键事件,不只是粘贴到mytext1到mytext2。 – kbitsoft 2013-05-01 12:06:36

+0

@ user1822719我不明白你的评论,我告诉你要走的路,比你应该这样做:http://jsbin.com/urilox/4/edit?希望不是那么难;) – 2013-05-01 12:12:24

相关问题