私は以下の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に感謝します。