<body>
    <div>
        1:您的性别
    </div>
    <div>
        <input type="radio" name="sex" />男
        <input type="radio" name="sex" />女
    </div>
    
    <div>
        2:您的学历
    </div>
    <div>
        <input type="radio" name="level" />大专
        <input type="radio" name="level" />本科
        <input type="radio" name="level" />研究生
    </div>
    
    <div>
        3:您的爱好
    </div>
    <div>
        <input type="checkbox" name="like" />吃
        <input type="checkbox" name="like" />喝
        <input type="checkbox" name="like" />玩
    </div>
    
    <div>
        4:您喜欢的食物
    </div>
    <div>
        <input type="checkbox" name="food" />香蕉
        <input type="checkbox" name="food" />苹果
        <input type="checkbox" name="food" />大鸭梨
    </div>
    
    <div>
        5:你的基本信息
    </div>
    <div>
       name:<input type="text"  name="basicInfo"/>
       age:<input type="text"  name="basicInfo"/>
    </div>
    
    <div>
        6:你的个人介绍
    </div>
    <div>
       <textarea name="Detail"></textarea>
    </div>
    
    <input type="button" id="btnSubmit" value="提交" />
</body>以上是HTML代码,name这个属性都是动态生成的,没规律的,我如何判断每道题都是必选项呢?求围观!

解决方案 »

  1.   

    不用name,你可以用id啊,或者既然是jquery,可以用css选择啊,所有要验证的都加同一个css
    用$('.css名称')就能获取到了
      

  2.   

    这个表单的内容是动态 可能都是单选 也可能都是多选 也可能各种类型都有,但同一道题目的选项的name属性都是一致的 。
      

  3.   

    <input type="button" id="btnSubmit" onclick="return check_form()" value="提交" />
    <script type="text/javascript">
       function check_form(){
        var input=document.getElementsByTagName("input");
        var arr={},id,s_name,ty;
           for(var i=0;i<input.length;i++){
               id=input[i];
               s_name=id.name;
               ty=id.type;
               if(ty=="text"){
                   if(id.value==""){
                       alert("请填写此项!");
                       id.focus();
                       return false;
                   }
               }else if(ty=="checkbox"||ty=="radio"){
                   if(!arr[s_name]){
                       var l=0;
                       var lid=document.getElementsByName(s_name);
                       for(var n=0;n<lid.length;n++){
                           if(lid[n].checked){
                               l++;
                           }
                       }
                       if(l>0){
                           arr[s_name]=true;
                       }else{
                           alert("请务必选择一项");
                           id.style.border = "1px solid red";//艹ff不支持 错误时应该怎么提示需要你去处理一下
                           id.focus();
                           return false;
                       }
                   }
               }
           }
           var text=document.getElementsByTagName("textarea");
           for(var n=0;n<text.length;n++){
               if(text[n].value==""){
                   alert("请填写内容!");
                   text[n].focus();
                   return false;
               }
           }
           alert("可以交卷!")
       }
    </script>
      

  4.   

    其实真用jQuery方法,不管是不是动态的,都可以进行判断.
    通过选择器选择到你要的东西然后也相应的判断和提示,或者可以选择整个form在衣次判断里面的子项.jquery选择器很强大,想怎么选就怎么选,id,name,css选择器,然后拿到后就可以做验证了.
      

  5.   

    <input type="button" id="btnSubmit" onclick="return check_form()" value="提交" />
    <script type="text/javascript">
    function check_form(){
        var arr={},id,s_name,ty;
        try {
            $("input,textarea").each(function(){
                ty=$(this).attr("type");
                if(ty=="text"||ty==undefined){
                    if($(this).val()==""){
                        throw this;                }
                }else if(ty=="checkbox"||ty=="radio"){
                    if(!arr[s_name]){
                        var s_name=$(this).attr("name");
                        if($("input[name='"+s_name+"']:checked").size()==0){
                            throw this;
                        }else{
                            arr[s_name]=true;
                        }
                    }
                }
            });
        }catch(e){
            alert("请完成这道题!");
            $(e).css("border","1px solid red");//艹ff不支持
            $(e).focus();
            return false;
        }
        alert("可以交卷!");
    }
    </script>