控制在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>