2009-09-04 3 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

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

Надеюсь, это поможет.

Смежные вопросы