怎样限定文本框输入的只能是数字?
各位高手:
怎样限定文本框输入的只能是数字?
最好有代码,
谢谢了!
问题点数:50、回复次数:10Top
1 楼shine2000(勇敢的心)回复于 2005-09-25 15:20:56 得分 30
<input type=text onkeyup="value=value.replace(/[^\d]/g,'')">Top
2 楼qiqunet(瑞旗·广东)回复于 2005-09-25 15:25:42 得分 20
<script languang="javascript">
function checkkey(v){
var kc=event.keyCode;
if (kc ==43 ||kc ==45 ||kc ==46 ||kc ==13 || (kc >47 && kc <58)){
//只允许输入“+”“-”“.”“回车”“0-9”等字符。
if(kc==46&&v.indexOf('.') >-1)event.returnValue = false;
//不允许输入多个小数点
if((kc==43||kc==45)&&(v.indexOf('+')>-1||v.indexOf('-')>-1||v.length>0))event.returnValue = false;
//不允许输入多个正负号,不允许在数字中间输入正负号
}else{
event.returnValue = false;
alert("请输入数字");
}
}
function checkvalue(obj){
if(!/^[+|-]?\d+\.?\d*$/.test(obj.value)&&obj.value!=''){
alert('你输入的不是数字,或关闭输入法后再输入');
obj.select();
}
}
</script>
<br/>
用正则<input name="s" onblur="checkvalue(this)"><br/>
用常规<input onkeypress="checkkey(value);" onblur="value=value=='+.'||value=='-.'?value+0:value">
Top
3 楼xilo()回复于 2005-09-25 15:33:04 得分 0
提交到数据库的时候记得还要用ASP判断哦。Top
4 楼l_0117(笑看山河)回复于 2005-09-25 15:34:03 得分 0
javascript函数代码:
function IsDigit()
{
return ((event.keyCode >= 48) && (event.keyCode <= 57));
}
调用:
<input type="text" onKeyPress="event.returnValue=IsDigit();">Top
5 楼zhaopengfei2005(我是不是走到了世界的邊緣?)回复于 2005-09-25 17:24:29 得分 0
<input type=text onkeyup="value=value.replace(/[^\d]/g,'')">
这个好象不好用,把下划线也禁止了Top
6 楼qiqunet(瑞旗·广东)回复于 2005-09-26 01:16:46 得分 0
修正一下,上面提供的那个正则方法有点错误,该方法允许了输入“|”号,所以不对。
<script languang="javascript">
function checkvalue(obj){
if(!/^[+-]?\d+\.?\d*$/.test(obj.value)&&obj.value!=''){
alert('你输入的不是数字,或关闭输入法后再输入');
obj.select();
}
}
</script>
<br/>
用正则<input name="s" onblur="checkvalue(this)"><br/>
Top
7 楼starsrainmzl(白衣)回复于 2005-09-26 07:25:41 得分 0
<script languang="javascript">
function OnlyNum()
{
if(isNaN(frmOutStore.txtInfactNumber.value))
{
alert('实领数量请输入数字!');
frmOutStore.txtInfactNumber.focus();
}
}
</script>Top
8 楼etononline(瑞金 www.rj163.com)回复于 2005-09-26 08:46:36 得分 0
给一个完整的效果
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>查询系统</title>
<STYLE type=text/css>
TD {
FONT-SIZE: 9pt
}
A:link {
COLOR: #003399; TEXT-DECORATION: none
}
A:visited {
COLOR: #003399; TEXT-DECORATION: none
}
A:hover {
COLOR: #cc0000
}
.av_gofd_but {
border:1px solid #003399; BACKGROUND-COLOR: #ffffff; FONT-FAMILY: "Ë"; FONT-SIZE: 9pt; HEIGHT: 20px; å
}
.av {
border:1px solid #CFCFD2
}
</STYLE>
<SCRIPT LANGUAGE=javascript>
<!--
function cal1_onclick()
{open("cal.html","calendar","toolbar=no,location=no,resizable=yes,left=20,top=100,width=450,height=420")}
function cal2_onclick()
{open("cal1.html","calendar","toolbar=no,location=no,resizable=yes,left=20,top=100,width=450,height=420")}
function Form_Validator(theForm)
{
if (theForm.tele_num.value == "")
{
alert("请输入查询号码。");
theForm.tele_num.focus();
return (false);
}
if (theForm.tele_num.value < 99999)/*至少6位*/
{
alert("查询号码至少6位。");
theForm.tele_num.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = theForm.tele_num.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 查询号码 域中,只能输入数字。");
theForm.tele_num.focus();
return (false);
}
var checkOK = "0123456789-";
var checkStr = theForm.date1.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 日期 域中,只能输入数字。");
theForm.date1.focus();
return (false);
}
var checkOK = "0123456789-";
var checkStr = theForm.date2.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 日期 域中,只能输入数字。");
theForm.date2.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = theForm.minute1.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 分钟 域中,只能输入数字。");
theForm.minute1.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = theForm.minute2.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 分钟 域中,只能输入数字。");
theForm.minute2.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = theForm.hour1.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 小时 域中,只能输入数字。");
theForm.hour1.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = theForm.hour2.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("在 小时 域中,只能输入数字。");
theForm.hour2.focus();
return (false);
}
if (theForm.minute1.value>60)
{
alert("在 分钟 域中,最大值60。");
theForm.minute1.focus();
return (false);
}
if (theForm.minute2.value>60)
{
alert("在 分钟 域中,最大值为60。");
theForm.minute2.focus();
return (false);
}
if (theForm.hour1.value>24)
{
alert("在 小时 域中,最大值为24。");
theForm.hour1.focus();
return (false);
}
if (theForm.hour2.value>24)
{
alert("在 小时 域中,最大值为24。");
theForm.hour2.focus();
return (false);
}
if (theForm.date1.value == "")
{
alert("请输入日期段。");
theForm.date1.focus();
return (false);
}
if (theForm.date2.value == "")
{
alert("请输入日期段。");
theForm.date2.focus();
return (false);
}
if (theForm.date2.value < theForm.date1.value)
{
alert("结束日期应等于或大于开始日期。");
theForm.date2.focus();
return (false);
}
}
//-->
</SCRIPT>
</HEAD>
<BODY topmargin="0" marginwidth="0" leftmargin="0" marginheight="0" rightmargin="0" background="image/gglbg.gif">
<table width="369" height="125" border="0" cellpadding="0" cellspacing="0">
<form action="query_op.asp" onsubmit="return Form_Validator(this)" name=form1 id=form1 method="post">
<tr>
<td height="30" colspan="2" align="right"> 查询号码:</td>
<td width="93" height="30" colspan="4"><input id="tele_num" name="tele_num" class="av_gofd_but" size="25" >
</td>
<td height="30" width="143"> </td>
</tr>
<tr>
<td height="30" colspan="2" align="right">开始日期:</td>
<td height="30"><input id="date1" name="date1" class="av_gofd_but" size="12"></td>
<td width="23" height="30" align="right"><input id="hour1" name="hour1" class="av_gofd_but" size="3" maxlength="2"></td>
<td width="12" height="30" align="left">:</td>
<td height="30" width="32"><input id="minute1" name="minute1" class="av_gofd_but" size="3" maxlength="2"></td>
<td height="30" width="143"><IMG onclick="return cal1_onclick()" src="image\show-calendar.gif" ></td>
</tr>
<tr>
<td height="30" colspan="2" align="right"> 结束日期:</td>
<td height="30"><input id="date2" name="date2" class="av_gofd_but" size="12" ></td>
<td width="23" height="30" align="right"><input id="hour2" name="hour2" class="av_gofd_but" size="3" maxlength="2"></td>
<td width="12" height="30" align="left">:</td>
<td height="30" width="32"><input id="minute2" name="minute2" class="av_gofd_but" size="3" maxlength="2"></td>
<td height="30" width="143"><IMG onclick="return cal2_onclick()" src="image\show-calendar.gif" ></td>
</tr>
<tr>
<td width="12" height="35"> </td>
<td width="54" height="35"> </td>
<td height="35" colspan="5"><input name="submit" type="submit" class="av_gofd_but" value="提 交">
<input name="B2" type="reset" class="av_gofd_but" value="重 置"></td>
</tr>
</form>
</table>
</BODY>
</HTML>Top
9 楼junwangmail(军)回复于 2005-09-26 22:52:45 得分 0
谢谢大家了Top
10 楼RoseKnife(花满楼)回复于 2005-09-26 23:04:05 得分 0
牛人Top




