作业?!那还是算了,建议你搜索一下validator类,你那几点验证只是小case。

解决方案 »

  1.   

    这就是个check得问题,页面就不用做了吧,check也简单
      

  2.   

    for (var i=0; i < f.elements.length; i++){
    e = f.elements[i];
    /* 将提交信息分割,放置在两个数组中,分割符#取最后的(true|false)*/
    a = e.id.split("#");
    //判断输入内容的类型:"text", "select-one", "select-multiple", "textarea", ["checkbox", "radio"]
    if ( a[1] == "true" ) {
    switch (e.type) {
    case "text":

    if (trim(e.value) == "" ){
    alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return false}
    break
    case "textarea":
    if ( trim(e.value) == "" ){
    alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return false}
    break
    case "select-one":
    if (((e.length == 0)||(e.options[e.selectedIndex].text.substr(0,1)=="-"))||(trim(e.value)=="无")){
    alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return false}
    break
                        case "select-multiple":
                        if (e.length == 0){
    alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return false}
    break
    case "checkbox":
    hasChecked = false;
    p = eval("e.form." + e.name);
    for (var r=0; r < p.length; r++){
    if ( p[r].checked ){hasChecked = true};
    }
    if (!hasChecked) {
        alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return hasChecked;
    }
    break
    case "radio":
    hasChecked = false;
    p = eval("e.form." + e.name);
    for (var r=0; r < p.length; r++){
    if ( p[r].checked ){hasChecked = true};
    } if (!hasChecked) {
      alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return hasChecked;
    }
    break
                    case "password":
    if ( trim(e.value) == "" ){
    alert("' " +a[0] + " ' 不能为空, 请重新输入!");
    e.focus();
    return false
    }
    break
    default:
    break
    }

    switch (a[2]) {
    case "Date":
      if (trim(e.value) != "" )
    if(!dateFormatOk(e.value, "-")){ 
         alert('请输入正确的日期格式(YYYY-MM-DD / 1999-12-01)');
         e.focus();
         return false;
            }
    break;
    case "Time":
      if (trim(e.value) != "" )
    if(!timeFormatOK(e.value, ":")){ 
         alert('请输入正确的时间格式(HH:SS / 18:01)');
         e.focus();
         return false;
            }
    break;
    case "Number":
      if (trim(e.value) != "" )
    if(isNaN(e.value)){
    alert("请输入正确的数值内容!")
    e.focus();
    return false;
    }
    break;
    case "Same":
        var v2=eval("f."+a[3]+".value");
    if(!isSame(e.value,v2)){
    alert("两次输入的密码不一致!")
    e.focus();
    return false;
    }
    break;
    case "Max":
    if ( e.length > a[3]){
    alert("' " +a[0] + " ' 不能多与"+a[3]+"位, 请重新选择!");
    e.focus();
    return false
    }
    break;
    case "Overline":
      if (trim(e.value).length> a[3]){
    alert("' " +a[0] + " ' 不能多于"+a[3]+"个字, 请重新输入!");
             e.focus();
    return false     
      }
      break;
    case "email":
      if(!(trim(e.value).indexOf("@")>0) && (trim(e.value).indexOf("@")<trim(e.value).length-1)){
        alert("请输入正确的邮件地址!");
    e.focus();
    return false;
      }
      break;
    case "maxlength":
      if(e.length>a[3]){
    alert("' " +a[0] + " ' 不能多于"+a[3]+"个, 请重新输入!");
             e.focus();
    return false
      }
      break;
    case "Similar"://相似
              if((!trim(document.all(a[3]).value)=="")&&(trim(e.value)==trim(document.all(a[3]).value))){
        alert("' "+a[0]+" ' 不能重复!");
    e.focus();
    return false;
      }
              break;
    case "CompDate"://比较日期
      if (trim(document.all(a[3]).value)!="" && trim(document.all(a[4]).value)!=""  ){
      srq = trim(document.all(a[3]).value);
      erq = trim(document.all(a[4]).value);
      if (srq > erq){
       alert(a[5]);
       document.all.enddate.focus();
       return false;
      }
      }
      break;
    case "outnum":
      if(e.length>a[3]){
                alert("超链接只能选择"+a[3]+"个!");
                return false;
      }
      break;
      default:
              break;
    }
    }
      

  3.   

    俺们以前就是同学那里copy的,一个题目,50个人差不多就名字和学号不一样。