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/
相关推荐
其次,jQuery.validate 是一个强大的表单验证插件,它的作用是在用户提交表单之前,对用户填写的内容进行格式校验,确保数据的有效性和完整性。通过 jQuery.validate 可以很容易地定义各种校验规则,从而避免无效...
第二种解决方案则是从源代码层面解决,通过对 jQuery Validate 库文件进行修改,使得所有使用该库的页面都能够校验多个具有相同名称的元素。具体步骤如下: 1. 修改 `jquery.validate.js` 文件,使用 ctrl+F 查找 `...
通过使用`jquery-validate`,开发者可以轻松地为表单添加各种验证逻辑,如必填项检查、邮箱格式校验等,同时还能方便地定制错误提示信息,提高用户体验。 ### 二、安装与引入 在使用`jquery-validate`之前,首先...
而jQuery Validate默认忽略对隐藏元素进行校验,因此我们要把select排除。在validate()方法的参数中增加ignore属性,将select从忽略的隐藏元素中剔除。 $("select").validate({ignore: ":hidden:not(select)"}); :...
### jQuery 验证插件详解 #### 一、引言 在前端开发中,表单验证是必不可少的一个环节。为了确保用户输入的数据符合预期格式,提高用户体验并减轻后端服务器的压力,开发者通常会采用各种前端验证技术。jQuery ...
3.2、jQuery扩展插件validate—2通过参数设置验证规则 3.3、jQuery扩展插件validate—3通过参数设置错误信息 3.4、jQuery扩展插件validate—4设置错误提示的样式 3.5、jQuery扩展插件validate—5添加自定义验证方法 ...
2. **jquery-validate**:这个插件用于表单验证,通过简单的配置,可以实现对用户输入的实时校验,确保数据的正确性,提高用户体验,减少服务器端的压力。 3. **bootstrap-summernote**:Summernote 是一个富文本...
为简化表单验证,有许多JavaScript库和框架提供帮助,如jQuery Validate、Formik、Vuelidate等。它们提供了丰富的验证规则和友好的API,使开发更高效。 **6. 异步验证** 对于需要服务器验证的情况(如用户名可用性...
在网页开发中,合理利用jQuery库能极大地提高JavaScript代码的编写效率。jQuery通过封装一系列复杂的DOM操作,使得开发者能够更轻松地处理网页中的元素和事件。本文将详细介绍jQuery中与鼠标相关的事件及其应用。 #...
- **解决方案**: - 使用正则表达式验证日期格式是否正确。 - 将字符串转换为Date对象进行比较。 - 示例代码: ```javascript function isValidDate(dateStr) { const dateRegex = /^\d{4}-\d{2}-\d{2}$/; if...
五、 插件类 以Plugin结尾,如:SendRegMailPlugin 1.3 变量/属性命名规则 1. 全部小写 2. 可用下划线连接 如:username、 userid 1.4 方法命名 1.4.1 Action类 add 到添加页 edit 到修改页 saveAdd 保存添加 save...
- **Vue.js/React/Angular的验证库**:如Vee-Validate、Formik、NgFormly等,为前端框架提供了便捷的表单验证解决方案。 6. **异步验证** - **Ajax**:使用XMLHttpRequest或fetch API向服务器发送请求,验证用户...