说起程序中的bug,真是一个令所有程序员深恶痛绝的东西,然而大部分都是源于接触少,缺乏经验。
在上学期javaWeb大作业中,在写一个jsp的时候,由于一个button的功能是提交,于是把这个button的name赋值为submit,然而这个值和jsp中form(表单)的提交函数重名了。
部分代码如下
12 3 4 5
这就导致了在javascript部分写LoginSubmit()函数的时候出现了严重的bug。部分代码如下。
1 function LoginSubmit(){ 2 var user=document.Login.loginName.value; 3 var pass=document.Login.password.value; 4 var authcode=document.Login.authcode.value; 5 //var regu= /^[a-zA-Z][a-zA-Z0-9]{0,24}$/; 6 var id=document.Login.id.value; 7 if(user==null||user==""){ 8 alert("请填写用户名"); 9 10 }11 else if(pass==null||pass==""){12 alert("请填写密码");13 14 }15 else if(authcode==null||authcode==""){16 alert("请输入验证码");17 18 }19 else if(id==null||id==""){20 alert("请选择身份");21 }22 else 23 document.Login.submit();24 }
这时表单提交的时候调用的并不是提交函数submit(),而是叫submit()的这个button,最后的结果就是,在网页中不管怎么按那个提交按钮都是无效的。
这个bug困扰了我一晚上,在第二天才突然想到是因为命名不规范才导致这样的结果,如果是有经验的开发人员应该不会犯这种低级的错误。