关于onChange的问题,在线等,谢谢!
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<title>文本对象事件</title>
<meta content="text/html;charset=gb2312" http-equiv=Content-Type>
<head>
<script language=javascript>
function isNum(inputStr)
{
for(var i=0;i<inputStr.length;i++)
{
var oneChar=inputStr.substring(i,i+1)
if(oneChar<"0"||oneChar>"9")
{
alert("请你只输入数字")
return false
}
}
return true
}
function checkIt(form)
{
inputStr=form.numeric.value
if(isNum(inputStr)==true)
{}
else
{
form.numeric.focus()
form.numeric.select()
}
}
</script>
<meta content="mshtml 5.00.2614.3500" name=generator>
</head>
<body>
<center>
<form>
请输入数字:
<input name="numeric" onChange=checkIt(this.form)><p>
</form>
</center>
</body>
</html>
为什么onChange=checkIt(this.form)激发不了事件?
问题点数:20、回复次数:5Top
1 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2004-09-02 00:17:51 得分 0
function isNum(inputStr)
{
for(var i=0;i<inputStr.length;i++)
{
var oneChar=inputStr.substring(i,i+1)
if(oneChar<0 || oneChar>9) //不要加引号,否则是字符串比较,即按ascii码比较,数字字符永远小于字母
{
alert("请你只输入数字")
return false
}
}
return true
}
function checkIt(form)
{
var inputStr=form.numeric.value //建议加var 否则它是全局变量
if(isNum(inputStr)==true)
{}
else
{
form.numeric.focus()
form.numeric.select()
}
}
Top
2 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2004-09-02 00:21:09 得分 0
改进一下,上面的仍不行
function isNum(inputStr)
{
for(var i=0;i<inputStr.length;i++)
{
var oneChar=inputStr.substring(i,i+1)
if(isNaN(Number(oneChar)))
.......Top
3 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2004-09-02 00:26:59 得分 0
最后升华:你的函数判断是多余,判断是否是数字的方法:
!isNaN(Number(字符串))
js中 Number(string) 可以把 string转为数字型,如果转换失败,返回NaN,判断某个值是否为NaN用isNaN()函数,Top
4 楼lovelygirl0316(求知的女孩)回复于 2004-09-02 01:02:34 得分 0
用这个方法不行呀!Top
5 楼xiaozx(老德)回复于 2004-09-02 01:29:01 得分 20
function checkIt(form)
{
inputStr=form.numeric.value
if(isNum(inputStr)==true)
{}
else
{
form.numeric.focus()
form.numeric.select()
return false <----加上
}
}
<form>
请输入数字:
<input name="numeric" onChange=checkIt(this.form)><p>
</form>
改成
<form onsubmit="return checkIt(this)">
请输入数字:
<input name="numeric"><p>
</form>
Top




