天天看點

限制文本框輸入的問題

方法一:這裡隻能輸入數字:<br>

<input type=text name=txtPostalCode onKeypress="if (event.keyCode < 45 || event.keyCode >

57) event.returnValue = false;">

bug:這個好像有bug ,如果按住一個鍵不松,那麼就可以輸入其他字元。

方法二:<INPUT TYPE="text" οnkeyup="this.value=this.value.replace(/[^/d*]/,'')">

bug:這兩個都有BUG,我複制一些東西就可以粘在裡面了,而且什麼都能粘!!!

改進:<INPUT TYPE="text" οnkeyup="this.value=this.value.replace(/[^/d*]/,'')"

οnpaste="return false">

這樣你就沒法粘貼了:-p

onpaste好像需要的浏覽器版本高點吧,好像至少要5.5吧

經測試正确無誤的辦法有如下三種:

1。<input  οnkeyup="this.value=this.value.replace(//D/g,'')" 

onafterpaste="this.value=this.value.replace(//D/g,'')"> 

2。<input  name=txt1  οnchange="if(//D/.test(this.value)){alert('隻能輸入數

字');this.value='';}"> 

3。<input  οnkeyup="if(isNaN(value))execCommand('undo')"  onafterpaste="if(isNaN(value))

execCommand('undo')">

input進階限制級用法

1.取消按鈕按下時的虛線框

  在input裡添加屬性值 hideFocus 或者 HideFocus=true

2.隻讀文本框内容

在input裡添加屬性值 readonly

3.防止退後清空的TEXT文檔(可把style内容做做為類引用)

  <INPUT style=behavior:url(#default#savehistory); type=text id=oPersistInput>

4.ENTER鍵可以讓光标移到下一個輸入框

  <input οnkeydοwn="if(event.keyCode==13)event.keyCode=9" >

5.隻能為中文(有閃動)

  <input οnkeyup="value="/value.replace(/[" -~]/g,'')" οnkeydοwn="if(event.keyCode==13)

event.keyCode=9">

6.隻能為數字(有閃動)

  <input οnkeyup="value="/value.replace(/["^/d]/g,'')

"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/

[^/d]/g,''))">

7.隻能為數字(無閃動)

  <input style="ime-modedisabled" οnkeydοwn="if(event.keyCode==13)event.keyCode=9"

onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false">

8.隻能輸入英文和數字(有閃動)

  <input οnkeyup="value="/value.replace(/[/W]/g,"'')

"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/

[^/d]/g,''))">

9.屏蔽輸入法

  <input type="text" name="url" style="ime-modedisabled" οnkeydοwn="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"> (注意:keyCode=45表示減号“-”)

11. 隻能輸入兩位小數,三位小數(有閃動)

  <input maxlength=9 οnkeyup="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}" id=text_kfxe

name=text_kfxe>

文本框獲得焦點後,将光标定位到文本框裡的字元串的末尾

<HTML> 

<HEAD> 

<SCRIPT> 

function  setCaretAtEnd  (field)  { 

   if  (field.createTextRange)  { 

       var  r  =  field.createTextRange(); 

       r.moveStart('character',  field.value.length); 

       r.collapse(); 

       r.select(); 

   } 

</SCRIPT> 

</HEAD> 

<BODY> 

<FORM  NAME="aForm"> 

<INPUT  TYPE="text"  NAME="userName"  VALUE="測試文字"  ONFOCUS="setCaretAtEnd(this)"> 

<INPUT  TYPE="text"  NAME="userAge"  VALUE="測試文字"  ONFOCUS="setCaretAtEnd(this)"> 

</FORM> 

</BODY> 

</HTML>

繼續閱讀