目标:
用javascript / jquery大写(大写)作为用户类型的字符。
为此,我们使用$('#input').keypress(...)
问题:
在英文中,字母i
应大写为I
。
在土耳其语中,字母i
应大写为İ
。
如果我们从.keypress()
获取输入字符,我们会得到与输入的字符对应的代码,但我们不知道它是英语i
(成为I
)还是土耳其语{ {1}}(成为i
)。
如果我们从İ
得到输入字符,我们得到与按下的键对应的代码,但我们不能得到字符代码(它的0)以查明按下的字符是否是英语{ {1}}(成为.keydown()
)或土耳其语i
(成为İ
)
解决方案:
因此,作为一种解决方法,我们考虑使用ı
和I
事件,并且自keydown()
出现以来,使用keypress()
代码更新全局变量,我们检查keydown()
以获取密钥和字符,以便能够计算出要显示的字符。
编辑:这只适用于Chrome!
问题:
这是一个可行的跨平台解决方案吗?我们保证keydown()
永远是第一位的吗?对这个问题有更好的,更少的hacky解决方案吗?
修改的
我上面提到的解决方案仅适用于chrome,在firefox上,从英语keypress()
返回的keypress代码和土耳其语keydown()
键(两者都打印i
)是相同的(73 )。只有chrome为土耳其语'
返回正确的代码(222)。
那么,任何适用于所有浏览器的解决方案都可用吗?
答案 0 :(得分:0)
您正在寻找toLocaleUpperCase()
方法吗? http://www.w3schools.com/jsref/jsref_tolocaleuppercase.asp - 明确提到土耳其语!