关于JQuery validate表单校验插件对级联下拉框的校验问题
2014-09-18 16:07
399 查看
今天在使用JQuery validate表单校验插件时,遇见了一个非常诡异的问题了。在此记录一下:
问题描述:
如上图所示,行部类别和所属行部2项,存在级联关系,根据用户选择的不同行部类别显示不同的所属行部。
第一次选择营业部时,会对所选择的所属行部正确进行校验。选择“河南支行”,出现校验不通过标识。
当改变行部类别时,会重置所属行部,
第二次行部类别选择网点时,所属行部再次选择“河南支行”,也出现了校验不通过标识。注意:正常情况是能够通过校验的。
通过使用fire bug查看校验请求发现,当第二次再次选择所属行部时,由于选择了和上次一样的值(“河南支行”),并没有再次发送校验请求,就直接重现了上次校验的结果。
原因分析:
导致这样的结果,主要是由于JQuery validate表单校验插件对下拉框重新选定的值如果和上一次的值一样,就不会触发校验方法,不会根源remote向后台发送校验请求。而是直接还原上次校验的结果。
不能说这样的机制不好,它减少了不必要的网络校验的请求,减轻了服务器的压力。那么在针对这种特殊的下拉框级联校验我们该怎么解决呢?
解决方案:
根据上面的分析,我们只要能去掉所属机构下拉框对于上次选择结果的记忆就可以了。 当行部类别改变导致所属机构重置时,加上如下这段代码:
if($.data(document.getElementById("supBdt"), "previousValue"))
{
$.data(document.getElementById("supBdt"), "previousValue").old = null;
}
其中,supBdt是所属机构下拉框的id。
这样就能完美解决这个问题了。
问题描述:
如上图所示,行部类别和所属行部2项,存在级联关系,根据用户选择的不同行部类别显示不同的所属行部。
第一次选择营业部时,会对所选择的所属行部正确进行校验。选择“河南支行”,出现校验不通过标识。
当改变行部类别时,会重置所属行部,
第二次行部类别选择网点时,所属行部再次选择“河南支行”,也出现了校验不通过标识。注意:正常情况是能够通过校验的。
通过使用fire bug查看校验请求发现,当第二次再次选择所属行部时,由于选择了和上次一样的值(“河南支行”),并没有再次发送校验请求,就直接重现了上次校验的结果。
原因分析:
导致这样的结果,主要是由于JQuery validate表单校验插件对下拉框重新选定的值如果和上一次的值一样,就不会触发校验方法,不会根源remote向后台发送校验请求。而是直接还原上次校验的结果。
不能说这样的机制不好,它减少了不必要的网络校验的请求,减轻了服务器的压力。那么在针对这种特殊的下拉框级联校验我们该怎么解决呢?
解决方案:
根据上面的分析,我们只要能去掉所属机构下拉框对于上次选择结果的记忆就可以了。 当行部类别改变导致所属机构重置时,加上如下这段代码:
if($.data(document.getElementById("supBdt"), "previousValue"))
{
$.data(document.getElementById("supBdt"), "previousValue").old = null;
}
其中,supBdt是所属机构下拉框的id。
这样就能完美解决这个问题了。
相关文章推荐
- jQuery Validate表单验证插件 添加class属性形式的校验
- jQuery的表单校验插件validate(转)
- jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示
- 使用JQuery.Validate插件来校验页面表单有效性
- JQuery 表单校验插件 validate 使用纪录
- jQuery的表单校验插件validate
- jQuery的表单校验插件validate
- 使用jquery.validate.min.js插件进行表单验证并自定义校验规则
- JqueryValidate表单相同Name不校验问题解决
- 兼容IE8以下浏览器input表单属性placeholder不能智能提示功能,以及使用jquery.validate.js表单验证插件的问题处理
- 根据jquery.validate.js写的一个通用的form表单校验插件
- Jquery validate插件之表单校验
- jQuery Validate 表单验证插件----自定义校验结果样式
- 表单实时校验插件——jquery.validateForm.js(v.2.0)
- jQuery Validate表单验证插件 添加class属性形式的校验
- 关于jquery插件冲突的问题。
- jquery之表单插件(关于上传文件)
- jQuery formValidator 表单校验插件4.1.1高仿网易邮箱注册页面(已发演示链接)
- thickbox与jquery 表单插件兼容问题
- jQuery formValidator 表单校验插件4.1.1高仿网易邮箱注册页面(已发演示链接)