IE下直接使用CSS设置屏蔽输入法即可:ime-mode: disabled;
Chrome下未找到屏蔽输入法的有效方案,使用输入框获得光标时自动切换为英文输入的替代方案。
//屏蔽输入法替代方案:
//输入框获得焦点时,自动切换为英文输入
(function ($) {
if ($.fn.focusDisableIME)
return;
$.fn.focusDisableIME = function () {
//IE可直接屏蔽输入法
this.css('ime-mode', 'disabled');
if ($.browser.msie || ($.browser.mozilla && $.browser.version == '11.0'))
return;
this.on('focus', function (e) {
//console.log(arguments);
//避免因自动触发陷入死循环
if (e.isTrigger)
return;
var $this = $(this);
//借助密码输入时切换为英文的机制,先将光标移至临时密码输入框
var $tmpInput = $('<input type="password" style="height: 0; position: absolute">');
$('body').append($tmpInput);
$tmpInput.focus();
window.setTimeout(function () {
//移除临时元素并重新聚焦
$tmpInput.remove();
$this.focus();
}, 0);
});
};
})(jQuery);
//调用示例
$('input').focusDisableIME();