ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**使用jquery-easyui制作用户界面,必填项很简单,只需要一个简单的属性data-options="required:true" 就可以把一个输入变成必输项。** **但实际问题却是,在某些情况下,即使隐藏了必输项,却依然没办法提交,提交时弹出有必输项没有输入!!** 使用jquery-easyui的方法就是如果隐藏了,就把必输项标志去掉。也就是使用类似如下的代码。   ~~~ $('#DrpHA').combobox({ required: false }); ~~~ 可是一想,既然隐藏了必输项必然就不需要输入了。能不能修改jquery-easyui的源代码,把它的验证修改下。于是就研究起了源代码。 既然是提交时验证,自己猜测就应该在form提交时有相关代码。 在jquery.form.js中找到了如下几行代码: ~~~ function validate(target){ if ($.fn.validatebox){ var t = $(target); t.find('.validatebox-text:not(:disabled)').validatebox('validate'); var invalidbox = t.find('.validatebox-invalid'); invalidbox.filter(':not(:disabled):first').focus(); return invalidbox.length == 0; } return true; } ~~~ 经过测试,提交不成功,确实是这几行代码。 修改成如下就可以了。 ~~~ function validate(target) { if ($.fn.validatebox) { var t = $(target); t.find('.validatebox-text:not(:disabled)').validatebox('validate'); // var invalidbox = t.find('.validatebox-invalid'); var invalidbox2 = t.find('.validatebox-invalid:visible'); // alert(invalidbox2.length); invalidbox2.filter(':not(:disabled):first').focus(); return invalidbox2.length == 0; } return true; } ~~~ 最后在jquery.easyui.min.js中找到以上代码修改即可。 ~~~ function _3d6(_3dc){ if($.fn.validatebox){ var t=$(_3dc); t.find(".validatebox-text:not(:disabled)").validatebox("validate"); //var _3dd=t.find(".validatebox-invalid"); var invalidbox2 = t.find('.validatebox-invalid:visible'); alert(invalidbox2.length); //_3dd.filter(":not(:disabled):first").focus(); invalidbox2.filter(":not(:disabled):first").focus(); return invalidbox2.length==0; } ~~~