具體步驟:
方法一:用文本框的CSS屬性ime-mode實現。
<input onpaste="return false" ondragenter="return false" style="ime-mode:disabled">
提示:設置ime-mode為disabled的意思是禁止在輸入時禁止用戶激活輸入中文,韓文,日文等的輸入法(IME)狀態,因為這個只能檢測到鍵盤的輸入,對通過鼠標操作的粘貼和拖放無效。
方法二:在松開按鍵時用腳本檢查文本框的值,只保留Unicode編碼在0和255之間的字符。
<script>
function check(str){
var temp=""
for(var i=0;i<str.length;i++)
if(str.charCodeAt(i)>0&&str.charCodeAt(i)<255)
temp+=str.charAt(i)
return temp
}
</script>
<input onpaste="return false" ondragenter="return false" onkeyup="this.value=check(this.value)">
方法三:把所有雙字節字符替換為空。
<input onpaste="return false" ondragenter="return false" onkeyup="this.value=this.value.replace(/[^/x00-/x80]/gi,’’)">
方法四:把中文字符替換為空。
<input onpaste="return false" ondragenter="return false" onkeyup="this.value=this.value.replace(/[/u0391-/uFFE5]/gi,’’)">
特別提示
本例代碼運行后,第一種方法是不能切換輸入法,所以無法輸入中文,其它三種方法是在輸入中文后立即被替換為空,同時禁止了粘貼和拖放事件。
特別說明
本例主要是css屬性ime-mode和對中文或雙字節字符的判斷應用。
ime-mode 設置輸入方法編輯器(IME)的狀態。
charCodeAt返回指定位置上字符的 Unicode 編碼值。