天天看點

隻能輸入數字

控制在input的text裡輸入的值隻能是數字

ASK:寫一個小程式,在input的type="text"裡控制隻能輸入數字,如果輸入其他字元則會出現提示框!請問怎麼做啊?

幾種方法:

1、

<script language=java script>

function onlyNum()

{

 if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))

  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))

    event.returnValue=false;

}

</script>

<input οnkeydοwn="onlyNum();">

2、

<script>

function check(){

  if (isNaN(tt.value))

  {alert("非法字元!");

  tt.value="";}

}

</script>

<input type="text" name="tt" οnkeyup="check();">

3、

<script language=jscript>

function number()

{

var char = String.fromCharCode(event.keyCode)

var re = /[0-9]/g

event.returnValue = char.match(re) != null ? true : false

}

function filterInput()

{

if (event.type.indexOf("key") != -1)

{

var re = /37|38|39|40/g

if (event.keyCode.toString().match(re)) return false

}

event.srcElement.value = event.srcElement.value.replace(/[^0-9]/g, "")

}

function filterPaste()

{

var oTR = this.document.selection.createRange()

var text = window.clipboardData.getData("text")

oTR.text = text.replace(/[^0-9]/g, "")

}

</script>

<input οnkeypress="number()" οnkeyup="filterInput()" οnchange="filterInput()" onbeforepaste="filterPaste()" οnpaste="return false" style="ime-mode: disabled">

常用的全角字元的正規表達式是[/u530-/uFFFFFF],中文[/u4E00-/u9FA5]

這裡有一篇關于中日韓的漢字分布資訊(英語): http://www.nease.net/~stonec/hanzi/cjkinf.txt

4、允許小數點跟數字:

<input onKeypress="return (/[/d.]/.test(String.fromCharCode(event.keyCode)))" style="ime-mode:Disabled">

5、另一個不錯的:

<input οnkeypress="return(event.keyCode>=48&&event.keyCode<=57)" style="ime-mode:disabled" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^/d]/g,’’))">

全角符号範圍:

/uFF00-/uFFFF

6、隻允許輸入漢字:

<input οnkeypress=return(false) οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,’’)">

7、推薦的:

<input οnkeypress="return event.keyCode>=48&&event.keyCode<=57" οnpaste="return !clipboardData.getData(’text’).match(//D/)" style="ime-mode:disabled" οndragenter="return false">

可以用Javascript對文本框進行檢查,過濾掉非0-9的字元。

  <script language="javascript" event="onkeydown" for="document">

        if(event.srcElement.name=='TextBox1')

        {

              if(!KeyIsNumber(event.keyCode))

              {

                   return false;//這句話最關鍵

              }

        }

</script>

<script language="javascript">

function KeyIsNumber(KeyCode)

{

    //如果輸入的字元是在0-9之間,或者是backspace、DEL鍵

    if(((KeyCode>47)&&(KeyCode<58))||(KeyCode==8)||(KeyCode==46))

    {

          return true;

    }

    else

    {

          return false;

     }

}

</script>