最近做表单验证用了easyui form组件。又一次发现在测试表单都填写正确了但是调试表单的代码监测到调用form的"validate"方法总是返回false
最后查了一下原因在html中写的是easyui-validatebox但是在script中却又声明了$('#field1').combobox();
<form id="form1"> <input type="text" id="field1" class="easyui-validatebox" value=""> <script type="text/javascript"> $('#field1').combobox() </script> </form>
这里给出一个排错的方法! 这里给出一个排错的方法! 这里给出一个排错的方法!
这里引用了一个jquery插件回收表单对象
<script src="https://cdn.bootcss.com/jquery.serializeJSON/2.9.0/jquery.serializejson.js"></script>
function checkeFormTest(target) {
//回收表单对象 var formObject = $(target).serializeJson(); var fieldTypes = jQuery.parser.plugins; for (var i = 0; i < fieldTypes.length; i++) { var typeName; var type = fieldTypes[i]; var field = $(target).find('.ui-' + type); if (field.length) { var state = field.data(type); if (state) { for (name in formObject) { if (!field[type]('isValid')) { typeName = type; break; } } } } if (typeName) { alert("嘿兄跌,你的name=" + name + "的" + typeName + "类型的控件没有验证通过!") break; } } } //执行一下就知道form里面哪个没有验证过去好对症下药了,兄跌 $(function () { checkeFormTest($('#form1')); })
这样表单验证器 页面填写正确了,但是还是验证不过去。
还有一种情况可能是你的验证规则有问题。
技术交流QQ群:15129679