ASK:写一个小程序,在input的type="text"里控制只能输入数字,如果输入其他字符则会出现提示框!请问怎么做啊?
几种方法:
1、
<script language=java script> <input onkeydown="onlyNum();"> |
2、
<script> function check(){ if (isNaN(tt.value)) {alert("非法字符!"); tt.value="";} } </script> <input type="text" name="tt" onkeyup="check();"> |
3、
<script language=jscript> function filterInput() function filterPaste() <input onkeypress="number()" onkeyup="filterInput()" onchange="filterInput()" onbeforepaste="filterPaste()" onpaste="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 onkeypress="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 onkeypress=return(false) onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,’’)"> |
7、推荐的:
<input onkeypress="return event.keyCode>=48&&event.keyCode<=57" onpaste="return !clipboardData.getData(’text’).match(//D/)" style="ime-mode:disabled" ondragenter="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>