2013-05-01 91 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

相關問題