2011-07-25 47 views
0

我使用的是稍微增加了一些虛擬鍵盤從本教程:在線鍵盤禁用當文本輸入

http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/

jQuery的:

$(function(){ 
var $write2 = $('#write2'), 
    shift = false, 
    capslock = false; 

$('#keyboard li').click(function(){ 
    var $this = $(this), 
     character = $this.html(); // If it's a lowercase letter, nothing happens to this variable 

    // Shift keys 
    if ($this.hasClass('left-shift') || $this.hasClass('right-shift')) { 
     $('.letter').toggleClass('uppercase'); 
     $('.symbol span').toggle(); 

     shift = (shift === true) ? false : true; 
     capslock = false; 
     return false; 
    } 

    // Caps lock 
    if ($this.hasClass('capslock')) { 
     $('.letter').toggleClass('uppercase'); 
     capslock = true; 
     return false; 
    } 

    // Delete 
    if ($this.hasClass('delete')) { 
     var html = $write2.html(); 

     $write2.html(html.substr(0, html.length - 1000)); 
     return false; 
    } 

    // Special characters 
    if ($this.hasClass('symbol')) character = $('span:visible', $this).html(); 
    if ($this.hasClass('space')) character = $('span:visible', $this).html(); 
    if ($this.hasClass('tab')) character = $('span:visible', $this).html(); 
    if ($this.hasClass('return')) character = "\n"; 

    // Uppercase letter 
    if ($this.hasClass('uppercase')) character = character.toUpperCase(); 

    // Remove shift once a key is clicked. 
    if (shift === true) { 
     $('.symbol span').toggle(); 
     if (capslock === false) $('.letter').toggleClass('uppercase'); 

     shift = false; 
    } 

    // Add the character 
    $write2.html(character+ " " + $write2.html()); 
    }); }); 

的問題是,當我手動更改textarea,鍵盤被禁用。我不確定爲什麼,教程沒有真正解釋這個錯誤。

謝謝。

+0

你所說的「手動更改文本域」是什麼意思? – Tomm

+0

當某些東西被輸入到textarea中時,在線鍵盤被禁用。所以,你不能順利地在textarea中鍵入並點擊在線鍵盤。 – Liban

回答

1

嘗試使用而不是HTML VAL

$write.val($write.val() + character) 
+0

我試過了,我不認爲它可行... – Liban

+0

現在有用!只需要更新我使用的jquery版本!非常感謝!!! – Liban

+0

優秀,很高興成爲幫助:)你現在可以接受答案:) – laurac