`

jquery.validate.js校验select2解决方案,Jquery插件select2校验解决方案

阅读更多

jquery.validate.js校验select2解决方案

Jquery插件select2校验解决方案

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年9月15日 11:25:26 星期二

http://fanshuyao.iteye.com/

 

为了用jquery.validate.js校验select2,折腾了2天,现在终于解决了,把方法告诉大家。

 

一、使用用了select2美化select

 

 

$('select').select2();

 

 

 

二、页面部分代码

 

 

<div class="form-group">
  <label for="tel1" class="control-label">性别:</label>
    <div>
      <select name="genders" id="genders" class="form-control">
        <option value="">请选择…</option>
        <c:forEach items="${genders}" var="gender">
        <option value="${gender}" ${userInSession.genders eq gender?"selected='selected'":""}>${gender.value}</option>
       </c:forEach>
     </select>
  </div>
</div>

  

 

三、使用jquery.validate.js

导入js文件

jquery.validate.min.js

additional-methods.min.js

messages_zh.min.js

additional-methods-custom.js  (自己定义的校验方法扩展js文件)

 

四、校验

 

 

var validateObj = $('#userInfoEditForm').validate({
    ignore: "",
    errorClass : 'help-block',  
    focusInvalid : true,
    rules : {  
        genders : {
        	required : true
        }
    },  
    messages : {  
        genders : {  
            required : "请选择性别"  
        }
    submitHandler : function(form) {
    	return false;
        form.submit();//form.submit(); 或者$(form).ajaxSubmit();
    }  
}); 

$("#genders").change(function(){
	$(this).valid();
});

 

 

五、问题说明

1、使用select2美化select下拉列表后,select2会把原来的select隐藏掉,设置css属性(display:none),然后再通过select2重新定制界面

 

2、但jquery.validate.js默认不是校验:hidden属性的控件,所以造成原来的select校验不了

官网说明:

ignore (default: ":hidden")

Type: Selector

Elements to ignore when validating, simply filtering them out. jQuery's not-method is used, therefore everything that is accepted by not() can be passed as this option. Inputs of type submit and reset are always ignored, so are disabled elements.

 

Example: Ignores all elements with the class "ignore" when validating.

 

$("#myform").validate({

  ignore: ".ignore"

});

 

3、解决方法就是加ignore属性,把值设置为""空字符串

ignore: "",

 

4、设置ignore后在提交时就会对隐藏的属性进行校验,但选择的时候没有进行实时校验,因为你选择的是select2。所以要给select加一个change事件,当改变时,再校验一次。

 

$("#genders").change(function(){
	$(this).valid();
});

 需要注意的是:valid方法是jquery.validate.js中的方法,所以用的时候,要先调用初始化方法validate( ),

然后在后面再重新调用valid()校验方法。

valid( )  可以校验整个表单,也可以校验单个属性。

官网说明:

valid( )  

Returns: Boolean

Description: Checks whether the selected form is valid or whether all selected elements are valid.

validate() needs to be called on the form before checking it using this method. 

 

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年9月15日 11:25:26 星期二

http://fanshuyao.iteye.com/

1
2
分享到:
评论
5 楼 ron.luo 2017-06-01  
除了牛逼我还能说什么呢?
4 楼 蕃薯耀 2016-11-28  
chenyu_0225 写道
能设置隐藏的select和显示的select2的位置吗?



位置是自己定的吧
3 楼 chenyu_0225 2016-11-14  
能设置隐藏的select和显示的select2的位置吗?
2 楼 蕃薯耀 2016-02-01  
jr_soft 写道
这个问题你解决了没有 按照你说的 还是不行呢


解决了,select2的使用有比较多问题,你可以看我其他的文章
1 楼 jr_soft 2016-01-14  
这个问题你解决了没有 按照你说的 还是不行呢

相关推荐

    基于BootStrap与jQuery.validate实现表单提交校验功能

    其次,jQuery.validate 是一个强大的表单验证插件,它的作用是在用户提交表单之前,对用户填写的内容进行格式校验,确保数据的有效性和完整性。通过 jQuery.validate 可以很容易地定义各种校验规则,从而避免无效...

    jQuery Validate 校验多个相同name的方法

    第二种解决方案则是从源代码层面解决,通过对 jQuery Validate 库文件进行修改,使得所有使用该库的页面都能够校验多个具有相同名称的元素。具体步骤如下: 1. 修改 `jquery.validate.js` 文件,使用 ctrl+F 查找 `...

    jquery-validate前台验证框架,带详细使用方法

    通过使用`jquery-validate`,开发者可以轻松地为表单添加各种验证逻辑,如必填项检查、邮箱格式校验等,同时还能方便地定制错误提示信息,提高用户体验。 ### 二、安装与引入 在使用`jquery-validate`之前,首先...

    jQuery Validate 无法验证 chosen-select元素的解决方法

    而jQuery Validate默认忽略对隐藏元素进行校验,因此我们要把select排除。在validate()方法的参数中增加ignore属性,将select从忽略的隐藏元素中剔除。 $("select").validate({ignore: ":hidden:not(select)"}); :...

    分享jquery验证

    ### jQuery 验证插件详解 #### 一、引言 在前端开发中,表单验证是必不可少的一个环节。为了确保用户输入的数据符合预期格式,提高用户体验并减轻后端服务器的压力,开发者通常会采用各种前端验证技术。jQuery ...

    Spring_MVC_051:Spring MVC 学习总结(五)——校验与文件上传

    3.2、jQuery扩展插件validate—2通过参数设置验证规则 3.3、jQuery扩展插件validate—3通过参数设置错误信息 3.4、jQuery扩展插件validate—4设置错误提示的样式 3.5、jQuery扩展插件validate—5添加自定义验证方法 ...

    bootstrap plugins and jquery plugins

    2. **jquery-validate**:这个插件用于表单验证,通过简单的配置,可以实现对用户输入的实时校验,确保数据的正确性,提高用户体验,减少服务器端的压力。 3. **bootstrap-summernote**:Summernote 是一个富文本...

    表单js校验

    为简化表单验证,有许多JavaScript库和框架提供帮助,如jQuery Validate、Formik、Vuelidate等。它们提供了丰富的验证规则和友好的API,使开发更高效。 **6. 异步验证** 对于需要服务器验证的情况(如用户名可用性...

    jquery鼠标事件

    在网页开发中,合理利用jQuery库能极大地提高JavaScript代码的编写效率。jQuery通过封装一系列复杂的DOM操作,使得开发者能够更轻松地处理网页中的元素和事件。本文将详细介绍jQuery中与鼠标相关的事件及其应用。 #...

    java面试题

    - **解决方案**: - 使用正则表达式验证日期格式是否正确。 - 将字符串转换为Date对象进行比较。 - 示例代码: ```javascript function isValidDate(dateStr) { const dateRegex = /^\d{4}-\d{2}-\d{2}$/; if...

    Javashop开发规范V2.2

    五、 插件类 以Plugin结尾,如:SendRegMailPlugin 1.3 变量/属性命名规则 1. 全部小写 2. 可用下划线连接 如:username、 userid 1.4 方法命名 1.4.1 Action类 add 到添加页 edit 到修改页 saveAdd 保存添加 save...

    form-validation

    - **Vue.js/React/Angular的验证库**:如Vee-Validate、Formik、NgFormly等,为前端框架提供了便捷的表单验证解决方案。 6. **异步验证** - **Ajax**:使用XMLHttpRequest或fetch API向服务器发送请求,验证用户...

Global site tag (gtag.js) - Google Analytics