Js检查按下的键是英语i还是土耳其语i

时间:2015-06-05 11:05:07

标签: javascript jquery internationalization

目标:

用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)。

那么,任何适用于所有浏览器的解决方案都可用吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找toLocaleUpperCase()方法吗? http://www.w3schools.com/jsref/jsref_tolocaleuppercase.asp - 明确提到土耳其语!