0

mytext2からシミュレートするキーイベントを送信したいmytext1。つまり、「a」と入力すると、さらにmytext1表示される必要があります。さらに、mytext2バックスペースを押すmytext1と、影響を受ける必要がmytext2あります。場合によっては、mytext1 にはmytext2何かが残っているだけです。そのような場合、バックスペースを押すと、mytext1最後の文字がクリアされますmytext2(「両方のテキスト ボックスの内容を等しくしたくない」と表示されます)。ここに私のコードがあります:

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

*削除でも、backspace イベントが mytext2 にトリガーされる必要があります。mytext2.thinkでそれをやっているのと同じように、最初は異なるコンテンツで異なるテキストボックスに同じキーを押したと思います

ありがとう、助けて。 - - - - - - - - - アップデート - - - - - - - - - - - - - - - - ------------------------------------ 最初に mytext1 の値が「ca」で、mytext2 の値が「bea」であるとします。 、「t」を押すと、mytext1に影響を受けるはずmytext2です。mytext2mytext1は「beat」になります。バックスペースを 2 回押すmytext1と、mytext1=>"c" ,mytext2=>"be" となります。説明が下手で申し訳ありません。

4

2 に答える 2

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);
} );
于 2013-05-01T11:49:32.627 に答える
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);

    });

});
于 2013-05-01T11:48:31.180 に答える