jquery通过class验证表单不能为空

12/6/2015来源:Javascript教程人气:1025

在开发系统时,往往都有某些表单数据为必填项,若用jQuery通过ID去验证,不仅会影响效率,还会有所遗漏,不易于后期维护。

本章将介绍如何利用jQuery,通过为表单配置class进行统一验证。(ID一个页面只可以使用一次;class可以多次引用)

1:为input添加class,名字可以随意设置,但每个input需要保持一致,本章案例calss设置为noNull。(若input已有class属性,可直接加到其后)

2:为input添加一个属性,用来后期通过jquery获取该字段,用作提示语。本章案例提示属性为notNull。

3:通过jQuery遍历页面中所有calss为noNull的表单,验证其是否为空,若为空,通过获取notNull的字段,进行为空提示。

具体如何设置,请参照下面的案例。本章针对input,radio,select,checkbox等类型都进行了阐述。

 

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
</head>
<body>
    <form>
           <!-- input -->
           <div>
               姓名: <input type="text" name="name"  notNull="姓名" class="form-control noNull"> 
           </div>
           <br>
           <!-- radio -->
           <div>
              性别:
              男<input type="radio" name="sex" value="0" class="noNull" notNull="性别"><input type="radio" name="sex" value="1" >
           </div>
           <br>
           <!-- select -->
           <div>
               年龄:
                <select name="age" class="noNull" notNull="年龄">
                    <option value ="">请选择</option>
                    <option value ="1">1</option>
                    <option value ="2">2</option>
                </select>
           </div>
           <br>
           <!-- checkbox -->
           <div>
               兴趣:
               打球<input type="checkbox" name="hobby" value="1" class="noNull" notNull="兴趣">
               唱歌<input type="checkbox" name="hobby" value="2">
               跳舞<input type="checkbox" name="hobby" value="3">
           </div>
           <br>
          <button type="button" class="btn-c" onclick="bubmi()">保存</button>
    </form>

<script src="jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function bubmi(){
    $(".noNull").each(function(){
        var name = $(this).attr("name");
        if($(this).val()==""){
        alert($(this).attr('notNull')+"不能为空");return false;
        }
        if($(this).attr("type")=="radio"){  
            if ($("input[name='"+name+"']:checked").size() < 1){  
                alert($(this).attr('notNull')+"不能为空!");  
                return false;  
            }  
        }
        if($(this).attr("type")=="checkbox"){  
            if ($('input[name="'+name+'"]:checked').size() < 1){  
                alert($(this).attr('notNull')+"不能为空!");  
                return false;  
            }  
        }        
    })    
}
</script>
</body>
</html>