Search

4/09/2008

不給user轉中文輸入法

藍色小舖 BlueShop
>> 不給user轉中文輸入法
這是能達成的,keyCode = 229 時,表示在輸入中文:


<INPUT TYPE="text" onKeyDown="if (event.keyCode == 229){event.returnValue = false;}">

key code 229 真正代表的是å字元,
並不代表中文字元,
只是微軟目前出的台灣中文輸入法,
除了"微軟新注音輸入法"外,在onkeydown時都會自動送出key code 229。
故onkeydown的驗證對使用微軟新注音輸入法的用戶無效。

Javascript是無法對付故意搞破壞者的,
因為一定能被破解,
像是關掉browser的javascript等等。

以下是在下寫的,
用來防止無心之過的寫法,
適用於各種輸入法\對方用paste貼中文字\對方用drag貼中文字。

<input onfocus="gg(this.sourceIndex)" style="ime-mode:disabled">
<script>
reg=/[^a-zA-Z]/g;
function gg(y) {
s=document.all(y);
if (k=s.value.match(reg)) {
s.value=s.value.replace(reg,'');
alert('Invalid characters have been deleted!')
}
setTimeout('gg(s.sourceIndex)',100);
}
</script>

沒有留言: