最近在開發完一個項目後,又測試人員測試bug,然後我根據他們測試出來的bug一個一個的改,然後就遇到了一個問題,文本框是用來搜索,但是,比如這個文本框是用來搜索年齡的區間,輸入條件的時候,如果輸入了非數字的字符就不能輸入。像這樣的問題,其實可以通過正則表達式來做的,我們開發的項目中是已經有相應的正則表達式的驗證,但是這個框架裡做起來不那麼容易,於是就用了這個方法,這個方法也許不是最好的,但是能解決目前的問題。
1.只能輸入和粘貼漢字
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"><br/>
2.只能輸入和粘貼數字
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" /><br/>
3.數字腳本
<input onkeyup="if(/\D/.test(this.value)){alert('只能輸入數字');this.value='';}"><br/>
4.只能輸入數字和英文
<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"><br/>
5.簡易禁止輸入漢字
<input >輸入法不轉換,但可粘貼上<br/>
6.輸入數字和小數點
<input onkeyup="value=value.replace(/[^\d{1,}\.\d{1,}|\d{1,}]/g,'')" /><br/>
7.只能數字和"-",例如在輸入時間的時候可以用到
<input onkeyup="value=value.replace(/[^\w&=]|_/ig,'')" onblur="value=value.replace(/[^\w&-]|_/ig,'')" />
JS控制 input 輸入字符限制
ENTER鍵可以讓光標移到下一個輸入框
只能顯示,不能修改
1.文本框只能輸入數字代碼(小數點也不能輸入)
<input onkeyup="this.value=this.value.replace(//D/g,'')" onafterpaste="this.value=this.value.replace(//D/g,'')">
2.只能輸入數字,能輸小數點.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(//D/.test(this.value)){alert('只能輸入數字');this.value='';}">
3.數字和小數點方法二
4.只能輸入字母和漢字
<input onkeyup="value=value.replace(/[/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[/d]/g,''))" maxlength=10 name="Numbers">
5.只能輸入英文字母和數字,不能輸入中文
<input onkeyup="value=value.replace(/[^/w/.//]/ig,'')">
6.只能輸入數字和英文
<font color="Red">chun</font>
<input onKeyUp="value=value.replace(/[^/d|chun]/g,'')">
7. 小數點後只能有最多兩位(數字,中文都可輸入),不能輸入字母和運算符號:<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || //./d/d$/.test(value))event.returnValue=false">8.小數點後只能有最多兩位(數字,字母,中文 都可輸入),可以輸入運算符號:
<input onkeyup="this.value=this.value.replace(/^(/-)*(/d+)/.(/d/d).*$/,'$1$2.$3')">
只能是數字和小數點和加減乘際
9.只能輸入數字、小數點、負數
1.取消按鈕按下時的虛線框,在input裡添加屬性值 hideFocus 或者 HideFocus=true
<input type="submit" value="提交" hidefocus="true" />
2.只讀文本框內容,在input裡添加屬性值 readonly
<input type="text" readonly />
3.防止退後清空的TEXT文檔(可把style內容做做為類引用)
<input type="text" />
4.ENTER鍵可以讓光標移到下一個輸入框
<input type="text" onkeydown="if(event.keyCode==13)event.keyCode=9" />
5.只能為中文(有閃動)
<input type="text" onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)event.keyCode=9" />
6.只能為數字(有閃動)
<input type="text" onkeyup="value=value.replace(/[^/d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" />
7.只能為數字(無閃動)
<input type="text" onkeydown="if(event.keyCode==13)event.keyCode=9" onkeypress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false" />
8.只能輸入英文和數字(有閃動)
<input type="text" onkeyup="value=value.replace(/[/W]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" />
9.屏蔽輸入法
<input type="text" name="url" onkeydown="if(event.keyCode==13)event.keyCode=9" />
10. 只能輸入 數字,小數點,減號(-) 字符(無閃動)
<input onkeypress="if (event.keyCode!=46 && event.keyCode!=45 && (event.keyCode<48 || event.keyCode>57)) event.returnValue=false" />
11. 只能輸入兩位小數,三位小數(有閃動)
<input type="text" maxlength="9" onkeyup="if(value.match(/^/d{3}$/))value=value.replace(value,parseInt(value/10)) ;value=value.replace(//./d*/./g,'.')" onkeypress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 && event.keyCode!=45 || value.match(/^/d{3}$/) || //./d{3}$/.test(value)) {event.returnValue=false}" />