2009-09-04 58 views
1

我想獲取文本的值,包括keydown事件中的字符。獲取keydown上的文本框值+多種語言支持

$(".searchfield").keydown(function(e) { 

    if (e.which >= 32 || e.which < 127) { 
    var c = String.fromCharCode(e.which); 
     callSearch($(this).val() + c)); 
    } 
}); 

它適用於字符,數字和所有基本字符。 32-127 ASCII範圍。

我不知道如果這將工作,如果文本框有多語言輸入。非英文字符。

有人可以分享他們的經驗嗎?

感謝,

回答

-1

嗯,也許你應該把你不想通過靶向此功能,如0-31個ASCII字符,並接受所有其他什麼角色?

+0

我想它必須這樣... ... – LibraRocks 2009-09-08 16:14:26

-1

這將涵蓋西班牙語:

$(".searchfield").bind("keypress", function(event) { 
    var save = false; 
    if (window.event) { event = window.event; } 

    if (event.keyCode >= 32 && event.keyCode <= 126)  { save = true; } 
    else if (event.keyCode == 259)    { save = true; } // Y 
    else if (event.keyCode >= 192 && event.keyCode <= 197) { save = true; } // A 
    else if (event.keyCode >= 200 && event.keyCode <= 203) { save = true; } // E 
    else if (event.keyCode >= 204 && event.keyCode <= 207) { save = true; } // I 
    else if (event.keyCode == 209)    { save = true; } // Ñ 
    else if (event.keyCode >= 210 && event.keyCode <= 214) { save = true; } // O 
    else if (event.keyCode >= 217 && event.keyCode <= 220) { save = true; } // U 
    else if (event.keyCode == 221)    { save = true; } // Y 
    else if (event.keyCode >= 224 && event.keyCode <= 229) { save = true; } // a 
    else if (event.keyCode >= 232 && event.keyCode <= 235) { save = true; } // e 
    else if (event.keyCode >= 236 && event.keyCode <= 239) { save = true; } // i 
    else if (event.keyCode == 241)    { save = true; } // ñ 
    else if (event.keyCode >= 242 && event.keyCode <= 246) { save = true; } // o 
    else if (event.keyCode >= 249 && event.keyCode <= 252) { save = true; } // u 
    else if (event.keyCode == 253)    { save = true; } // y 
    else if (event.keyCode == 255)    { save = true; } // y 

    if (save){ 
    var c = String.fromCharCode(event.keyCode); 
    callSearch($(this).val() + c)); 
    } 
}); 
1

我也有類似的需求(包括KEYDOWN鍵)。我的解決方案只是使用.keyup事件。它將包括最後一個字符。

$(".searchfield").keyup(function(e) { 
    if (e.which >= 32 || e.which < 127) { 
     var c = String.fromCharCode(e.which); 
     callSearch($(this).val()); 
    } 
}); 

希望這會有所幫助。