强制将输入元素的语言切换为英语

3

好的,这里是内容: 我有一个元素

<input type="text" id="username" size="15">

我需要这个元素能够在用户在其中输入内容时,将键盘布局从任何其他语言切换到英语。我不需要将其发送到服务器,只需要在输入时强制切换语言。

有没有简单的JS解决方案?

以下是我考虑过的方法: 理论上来说,如果我知道它应该从哪种语言切换,那么我可以编写一个JS,将每个符号替换为英语。


那是什么意思,“切换语言”? - cport1
如果语言采用英文字符呢? - user2580104
我的意思是,当你开始在任何其他语言中输入时,键盘应该切换到英语。 - Under
可能不太可能。请参考这里的相关问题(https://dev59.com/amcs5IYBdhLWcg3ww2tP)和这里(https://dev59.com/2Wct5IYBdhLWcg3wKqQd)。 - showdev
1
HTML元素有一个lang属性,但文档称其无用。换句话说,根据http://www.w3schools.com/tags/att_global_lang.asp,它什么也不做。但是你可以尝试使用它,看看移动浏览器是否尊重它并弹出英文字符集而不是用户区域设置。我不认为有任何JS。据我所知,您所要求的只能通过某种元级属性来实现,该属性将指示浏览器应使用的语言,如果存在这样的方式的话。 - praneetloke
我不需要将它发送到服务器。 - Under
1个回答

0
你的意思是只允许字母数字字符吗?如果是,你可以做类似这样的事情。
$('#username').keyup(function() {
                if (this.value.match(/[^a-zA-Z0-9 ]/g)) {
                    this.value = this.value.replace(/[^a-zA-Z0-9 ]/g, '');
                }
            });

至于实际更改键盘布局本身,我不认为这是通过JavaScript可能实现的...


我也不认为这可能... 我试过以防万一...但是! 理论上,如果我知道要转换成哪种语言,那么我可以编写一个JS,将每个符号替换为英文。 - Under
即使只限于日语,要准确无误也非常困难...“何时”可以读作“itsu”(根据罗马字的标准化,甚至是“itu”)或“nanji”——单词之间也不使用空格,这将证明另一个困难。输入法通常有单词或短语的快捷方式,因此当我输入日语时,我只需输入其第一部分,然后点击建议(特别是对于我经常输入的单词/短语),因此您也不能进行原始输入转换。 - さりげない告白
幸运的是我不需要日语。但我猜当你在键盘上按下代表日语符号的一个按钮时,它可以被替换为英语键盘布局中对应的一个符号。 - Under
你可以这样做,例如将な转换为na -- 但是如果有人输入hanzawanaoki并最终点击了该字符的口头禅100baigaesida!!!(这是我手机输入法的一个实际例子)-- 它与他们输入的完全不同。-- 老实说,我对其他语言的输入法了解不多... - さりげない告白
好的。看一下这张图片 http://en.wikipedia.org/wiki/Keyboard_layout#mediaviewer/File:KB_Japanese.svg 当你按下键盘上的一个按钮时,它会自动替换为相应的英文ONE。我认为可以使用onkeyup属性和JS来实现这一点。 - Under
可以通过映射实现,但是输入法仍然会显示并填充无意义的内容,直到用户按下Esc或Enter键。然而,如果他们使用罗马字输入而不是假名输入,这将导致奇怪的打字体验 - 如果有人从手机上访问它,那么从日语输入产生的结果将毫无意义(他们可以轻松切换到英文字符,但转换本身没有任何意义)。 - さりげない告白

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接