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