JS表单验证提交问题

[code="java"]
function checkOrder() {
var f=document.getElementById("order");
var cid=document.getElementById("card_id");
var cname=document.getElementById("cname");
var tel=document.getElementById("telephone");
var mo=document.getElementById("mobile");
var bir=document.getElementById("birthday");
var license=document.getElementById("license");
var comedate=document.getElementById("comedate");
var mileage=document.getElementById("mileage");
var oilamount=document.getElementById("oilamount");
var engine=document.getElementById("enginetype");

if(cid.value=="")
  {
     alert("顾客编号不能为空");
     return false;
  }else{
    var patrn=/^[0-9]{1,20}$/; 
   if (!patrn.exec(cid.value)) {

    alert("顾客ID只能由数字构成");
    return false; 
   }

  }
if(cname.value=="")
  {
     alert("顾客姓名不能为空");
     return false;
  }
if(tel.value=="")
  {
     alert("固定电话不能为空");
     return false;
  }else{
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;   
    if (!patrn.exec(tel.value)) 
    {
        alert("电话号码包含非法字符");
        return false;

    } 

  }
if(mo.value=="")
  {
     alert("移动电话不能为空");
     return false;
  }else{
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;   
    if (!patrn.exec(mo.value)) 
    {
        alert("手机号码包含非法字符");
        return false;

    } 

  }
if(bir.value=="")
  {
     alert("顾客生日不能为空");
     return false;
  }else{

    var reg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/
    if(!reg.test(bir.value)){
    alert("日期格式不正确!\n正确格式为:yyyy-mm-dd");
    return false;
     }

  }
if(license.value=="")
  {
     alert("请输入车牌号码");
     return false;
  }
if(comedate.value=="")
  {
     alert("请输入进厂时间");
     return false;
  }else{
    var reg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/
    if(!reg.test(bir.value)){
    alert("日期格式不正确!\n正确格式为:yyyy-mm-dd");
    return false;}

  }
if(mileage.value=="")
  {
     alert("请输入进厂里程");
     return false;
  }else{

    var reg=/^^(([1-9]\d*)|0)(\.\d{1,2})?$/;
    if(!reg.exec(mileage.value)){
    alert("进厂里程包含非法字符");
    return false;}

  }

if(oilamount.value=="")
  {
     alert("请输入进厂油量");
     return false;
  }else{
    var reg=/^^(([1-9]\d*)|0)(\.\d{1,2})?$/;
    if(!reg.exec(mileage.value)){
    alert("进厂里程包含非法字符");
    return false;
    }

  }
if(engine.value=="")
  {
     alert("请输入进发动机类型");
     return false;
  }else{

f.submit();}
}
[/code]

请问下怎么样使验证通过后,提交表单呢?上面的写法有点混乱,搞不清了。
[b]问题补充:[/b]
另外 jsp的表单是采用struts的标签库的。

if(engine.value=="")

{

alert("请输入进发动机类型");

return false;

}else{

f.submit();}

改为
if(engine.value=="")

{

alert("请输入进发动机类型");

return false;

}
f.submit();

一个意思啊

你用 这种方式那checkOrder里就return false 或者true来表是是否提交。按钮用submit。

用f.submit()的话如果验证通过f.submit()不通过就return;
按钮用button不要用submit。

unika_ly12 这个仁兄正解。。
你必须onsubmit="return checkOrder();">
这样才能满足你的要求。。。
不能省略return 否则不能达到你的要求。。。