script高手进,求救啊!!!!!
<script language=javascript>
function checkform()
{
var userid=document.form1.userid.value
if (userid=='')
{
window.alert ('验证不能为空!');
document.form1.userid.focus();
return false;
}
else
{
function check(id){
var Errors=new Array(
"验证通过!",
"验证没能通过!\n\n请仔细填写!"
);
var ~~~~这里省略代码若干行~~~~~~~~~}
window.alert(check(userid));
document.form1.userid.focus();
return false;
}
return true;
}
</script>
<form action="2.asp" method="post" name="form1" onsubmit="javascript:return checkform()">
用户验证:<input name="userid" type="text"><input type="submit" name="Submit" value="验证"></form>
window.alert(check(userid));
document.form1.userid.focus();
return false;
问题就出在这了,没有"return false;"的话表单就直接提交了,有的话又不能提交表单,window.alert(check(userid));中check(userid)是个验证,验证通过了了就会弹出"验证通过!"对话框,没验证通过就会弹出"验证没能通过!\n\n请仔细填写!"对话,我现在想要的是当验证通过时就提交表单,验证没通过就执行"document.form1.userid.focus(); return false;"
参考答案:不是
if (userid==")
而应该是
if(userid="")
试一下!
不好意思,我下午下线了。
现在把答案发给你,我把验证放在button里面了,用的时候注意点就行了。
<script language=javascript>
function checkIdcard(idcard)
{
//alert(idcard);
//return false;
var Errors=new Array("验证通过!","身份证号码位数不对!");
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
if(area[parseInt(idcard.substr(0,2))]==null) return Errors[1];
//alert(Errors[0]);
//return false;
//alert(idcard.length);
switch(idcard.length)
{
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 ))
{
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
}
else
{
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
}
if(ereg.test(idcard))
//alert(Errors[0]);
return Errors[0];
else
//alert(Errors[1]);
return Errors[1];
break;
case 18:
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 ))
{
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;
}
else
{
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;
}
if(ereg.test(idcard))
{
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X***********";
M = JYM.substr(Y,1);
if(M == idcard_array[17])
//alert(Errors[0]);
return Errors[0];
else
//alert(Errors[1]);
return Errors[1];
}
else
//alert(Errors[1]);
return Errors[1];
break;
default:
return Errors[1];
}
}
function checkform()
{
var usercard=document.form1.user.value;
//alert(usercard);
//return false;
var Errstr;
if (usercard=="")
{
window.alert ("身份证号必须填写!");
document.form1.user.focus();
return false;
}
else
{
Errstr=checkIdcard(usercard);
}
alert(Errstr);
if(Errstr=="身份证号码位数不对!")
{
alert("错误");
document.form1.user.focus();
return false;
}
else
{
document.form1.submit();
}
}
</script>
<form action="2.asp" method="post" name="form1">
身份证号:<input name="user" type="text" size="25" maxlength="20" ><br>
<input type="button" name="Submit" value="注册" onclick="checkform();">
</form>
我测试过了,可以。
如果行了,给我发消息。