① 最好把<SCRIPT></SCRIPT>放在<HEAD>段里。
<script language="javascript">
function CheckNum()
{
var bookcount = form1.bookcount.value
var guige = form1.guige.value
//对输入的数据进行是否在整数的判断
var regu="^[0-9]+$"
var re = new RegExp(regu)
if(bookcount.search(re)==-1)
{
alert("这里只能输入正整数")
return false
}
//是否是guige的倍数,是的话就提交,不是的话就不提交
else if(bookcount % guige !=0)
{
alert("请输入"+guige+"的倍数")
return false
}
else return true
}
</script>
② <FORM>段需要添加onsubmit事件处理指向:
<form action="" method="get" name="form1" onsubmit="CheckNum()">
<input name="guige" id="guige" value="12" type="hidden" >
<input name="bookcount" type="text" id="bookcount" size="3" maxlength="9" >
<input type="submit" name="button" id="button" value="订购" >
</form>
第一种方法,编写两个方法getIntegerTimes(),isPositiveIntegerTimes()判断两个数(包含小数),先获取倍数,再判断倍数是否为正整数,好处就是两个方法都可以作为通用方法调用.实现功能多.//获取两个数的倍数,返回倍数
function getIntegerTimes(arg1,arg2){
if(arg1<arg2){
var flag=arg1
arg1=arg2
arg2=arg1
}
var t1=0,t2=0,r1,r2
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1)
}
//判断是否为正整数,返回true或false
function isPositiveIntegerTimes(arg) {
var num = arg.toString()
if (!(/(^[1-9]\d*$)/.test(num))) {
return false
}else {
return true
}
}
第二种方法,就是单一方法isPositiveIntegerTimes(),判断两个数(包含小数)是否整除
//判断两个数的是否为整数倍,返回true或者false
function isPositiveIntegerTimes(arg1,arg2){
if(arg1<arg2){
var flag=arg1
arg1=arg2
arg2=arg1
}
var t1=0,t2=0,r1,r2
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
var times= (r1/r2)*pow(10,t2-t1)
if (!(/(^[1-9]\d*$)/.test(times.toString()))) {
return false
}else {
return true
}
}