当前位置: 代码迷 >> JavaScript >> JQUERY的表单判断有关问题,求围观,百分百结贴
  详细解决方案

JQUERY的表单判断有关问题,求围观,百分百结贴

热度:150   发布时间:2012-09-12 09:21:30.0
JQUERY的表单判断问题,求围观,百分百结贴
HTML code

<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这个属性都是动态生成的,没规律的,我如何判断每道题都是必选项呢?求围观!

------解决方案--------------------
JScript code
<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>

------解决方案--------------------
JScript code
<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> 
  相关解决方案