我正在使用下面的 jquery。
$(document).ready(function () {
$("#myTextBox").keydown(function () {
return false;
(Or when keypress) event.preventDefault();
});
});
它适用于 IE 6-9、Chrome 中的英文 IME 模式。它停止用户在文本框中输入。但它不适用于 IE 6、7 和 8 中的韩语 IME 模式。但它适用于 IE 9。我没有用日语或中文测试,但我认为它会是一样的。
我需要做的是阻止用户在某些文本框中输入韩语字符。有谁知道为什么会在 IE 6-8 中发生这种情况?
编辑 根据 Fresheyeball 的想法,我得出了这个结果。
var korean = /[\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF\uFFA1-\uFFFF]/g;
var chinese = /[\u4E00-\u62FF\u6300-\u77FF\u7800-\u8CFF\u8D00-\u9FFF]/g;
var japanese = /[\u3040-\u309F\u1B000-\u1B0FF\u30A0-\u30FF\u31F0-\u31FF\u1B000-\u1B0FF]/g;
<!--
// Korean - http://en.wikipedia.org/wiki/Hangul
U+AC00-U+D7AF
U+1100-U+11FF
U+3130-U+318F
U+A960-U+A97F
U+D7B0-U+D7FF
U+FFA1-U+FFFF
// Chinese - http://en.wikipedia.org/wiki/CJK_Unified_Ideographs
U+4E00-U+62FF
U+6300-U+77FF
U+7800-U+8CFF
U+8D00-U+9FFF
// Japanese(hiragana) - http://en.wikipedia.org/wiki/Hiragana
U+3040-U+309F
U+1B000-U+1B0FF
// Japanese(katakana) - http://en.wikipedia.org/wiki/Katakana
U+30A0-U+30FF
U+31F0-U+31FF
U+1B000-U+1B0FF
-->
$("#Text2").val($("#Text1").val().replace(korean, ""));
但是,仍有一些错误需要修复。因为韩文、日文或中文中的一个字符,它不是整个字符。它仍在等待下一个角色命中。字母“A”只是“A”,它已完成输入。但KJC与那些有点不同。我想我可以解决这个问题。再次感谢 Fresheyeball。