相关疑难解决方法(0)

我可以有条件地更改在按键上输入的输入字符吗?

是否可以更改已在按键上输入的字符,而无需手动操作?

例如,如果我想根据某些条件强制使用大写字母,那么执行以下操作会很好:

function onKeypressHandler(e)
{
    if ( condition )
    {
        e.which -= 32;
    }
}
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用.

注意:不是一个全面的大写字母,而只是特定的字符.

也许我想说if ( e.which >= 97 && e.which <= 102 )或者if ( Wind.Direction == 'South' )其他什么 - 条件本身并不重要,但是大写只能应用于当前字符而不是整个输入.


我可以通过手动附加更改后的角色来实现,但这是一种丑陋而混乱的方式,并且可能比它更慢.

function onKeypressHandler(e)
{
    if ( condition )
    {
        $j(this).val( $j(this).val() + String.fromCharCode( e.which - 32 ) );
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此方法的一个特定缺陷 - 如果选择所有输入文本并输入密钥,如果它落入此中,则它不会删除现有内容,而只是附加到用户想要删除的内容.(需要调查检测任何选定的文本来解决这个问题,这使得这个问题变得更加丑陋.)

谁能提供更好的解决方案?

javascript jquery keypress

18
推荐指数
1
解决办法
1万
查看次数

显示谷歌浏览器中键入的键盘字符

我正在开发一个javascript键盘,试图让用户输入各种非洲语言.目前,这在IE8和Firefox中运行良好但不是谷歌浏览器,我实际上只是坚持这个.我想要完成的是例如,键入(在我的物理键盘上)' q '(keyCode = 113)并获得' ɛ '(keyCode = 603)作为输出,但目前,我的代码在谷歌浏览器中没有任何作用.我的代码的相关部分如下:

var k_layouts = {};  
k_layouts.Akan = {88:390,113:603};//keyCode mappings for Akan language    
k_layouts.Ga = {120:596,81:400};//keyCode mappings for Ga language  
var current_layout = "";  

//function that maps the keyCode of a **typed** key to that of the **expected** key    
function map_key_code(keycode){  
    if(k_layouts[current_layout] && k_layouts[current_layout][keycode])  
        return k_layouts[current_layout][keycode];  
    return keycode;  
}  

//function that actually changes the keyCode of a **typed** key to the **expected** value
function handle_keypress(ev){  
    var ev = ev || window.event;  
    if(ev.bubbles != …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome

2
推荐指数
1
解决办法
4100
查看次数

标签 统计

javascript ×2

google-chrome ×1

jquery ×1

keypress ×1