问问js的基本问题
我通常见到表单提交验证有两种情况
<script.......>
function check()
....
</script>
第一种:
<form method="post" name="form1" onsubmit="return check()"
<input type="submit" value="提交">
</from>
第二种:
<form method="post" name="form1">
<input type="button" value="提交" onclick="check();">
</form>
两种方法有什么不同??
问题点数:10、回复次数:6Top
1 楼josney(梦凌风)回复于 2004-09-02 09:57:46 得分 5
应该是一个有返回值一个没有返回值Top
2 楼windok2004(世界)回复于 2004-09-02 10:15:36 得分 0
什么意思??那种情况下用哪种?Top
3 楼xinyunyishui(心云意水)回复于 2004-09-02 11:04:34 得分 0
没什么太大的区别,关键是看你函数怎么写!Top
4 楼windok2004(世界)回复于 2004-09-02 11:11:21 得分 0
我的函数是这样的
function cussave_check()
{
if (document.form1.inname.value=='')
{window.alert ("客户姓名不能为空!");
return false;
}
//if (!isChinaIDCard(document.form1.inic.value))
//{
// return true;
//}
if (document.form1.inphone.value=='' && document.form1.inmobile.value=='')
{
window.alert("电话必须至少填写一个");
return false;
}
if (document.form1.incardno.value=='')
{
window.alert("号码必须填写!");
return false;
}
if (document.form1.inaddress.value=='')
{
window.alert("地址必须填写!");
return false;
}
//var emailPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
//if (emailPattern.test(document.form1.inemail.value)==false)
//{
//alert("非法的Email地址!");
//return false;
//}
document.form1.submit();
}
function isChinaIDCard(StrNo){
StrNo = StrNo.toString()
if (StrNo.length==18)
{
var a,b,c
if (!isInteger(StrNo.substr(0,17))) {return false}
a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;
a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;
a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;
a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
b=a%11;
if (b==2) //最后一位为校验位
{
c=StrNo.substr(17,1).toUpperCase(); //转为大写X
}
else
{
c=parseInt(StrNo.substr(17,1));
}
switch(b)
{
case 0: if ( c!=1 ) {alert("身份证好号码校验位错");return false;}break;
case 1: if ( c!=0 ) {alert("身份证好号码校验位错");return false;}break;
case 2: if ( c!="X") {alert("身份证好号码校验位错");return false;}break;
case 3: if ( c!=9 ) {alert("身份证好号码校验位错");return false;}break;
case 4: if ( c!=8 ) {alert("身份证好号码校验位错");return false;}break;
case 5: if ( c!=7 ) {alert("身份证好号码校验位错");return false;}break;
case 6: if ( c!=6 ) {alert("身份证好号码校验位错");return false;}break;
case 7: if ( c!=5 ) {alert("身份证好号码校验位错");return false;}break;
case 8: if ( c!=4 ) {alert("身份证好号码校验位错");return false;}break;
case 9: if ( c!=3 ) {alert("身份证好号码校验位错");return false;}break;
case 10: if ( c!=2 ){alert("身份证好号码校验位错");return false}
}
}
else //15位身份证号
{
if (!isInteger(StrNo)) {alert("身份证号码错误,前15位不能含有英文字母!");return false}
}
switch(StrNo.length){
case 15:
if (isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2)))
{return true;}
else
{return false;}
case 18:
if (isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2)))
{return true;}
else
{return false;}
}
//alert("输入的身份证号码必须为15位或者18位!");
return false
}
function isValidDate(iY, iM, iD) {
var a=new Date(iY,iM,iD);
var y=a.getFullYear();
var m=a.getMonth();
var d=a.getDate();
if (y!=iY || m!=iM || d!=iD)
{
window.alert ('身份证号码内日期错误!');
return false;
}
return true
}
function isInteger(str) {
if (/[^\d]+$/.test(str)){
return false;
}
return true;
}
function IDUpdate(StrNo){
if (!isChinaIDCard(StrNo)) {return false}
if (StrNo.length==15)
{
var a,b,c
StrNo=StrNo.substr(0,6)+"19"+StrNo.substr(6,9)
a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;
a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;
a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;
a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
b=a%11;
switch(b)
{
case 0: {StrNo=StrNo+"1";}break;
case 1: {StrNo=StrNo+"0";}break;
case 2: {StrNo=StrNo+"X";}break;
case 3: {StrNo=StrNo+"9";}break;
case 4: {StrNo=StrNo+"8";}break;
case 5: {StrNo=StrNo+"7";}break;
case 6: {StrNo=StrNo+"6";}break;
case 7: {StrNo=StrNo+"5";}break;
case 8: {StrNo=StrNo+"4";}break;
case 9: {StrNo=StrNo+"3";}break;
case 10: {StrNo=StrNo+"3";}
}
}
return StrNo;
}
function checkEmail(){
var emailPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
if (emailPattern.test(emails.value)==false)
alert("非法的Email地址!")
}
//-->
</script>Top
5 楼windok2004(世界)回复于 2004-10-22 12:51:07 得分 0
顶一下!Top
6 楼zhaoxiaoyang(梅雪香@深圳)回复于 2004-10-22 13:04:56 得分 5
这个不需要用返回值吧
如果在别的函数里还要调用空上校验的话可以要一个返回值
if(functionname()==0) return 0;
Top




