**使用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;
}
~~~
- 前言
- js封装和作用域
- 封装html的select标签的js操作
- js正则表达式的使用
- 使用闭包对setTimeout进行简单封装
- js中如何复制一个对象,如何获取所有属性和属性对应的值
- js中如何把字符串转化为对象
- js操作iframe兼容各种浏览器
- js模板方法的思路及实现
- 在js中如何实现方法重载?以及函数的参数问题
- 单纯的html页面如何提交,传递参数,以及对身份的验证
- ajax如何调试
- js综合应用简单的表格统计
- js格式化货币数据
- js综合应用:表格的四则运算
- 如何在浏览器中打开PDF文件并实现预览的思路与代码
- js实现幻灯片效果
- js实现幻灯片效果二
- jquery-easyui必填项隐藏问题的处理方案
- jquery-easyui隐藏可用不可用的问题的处理方案
- js变量作用域--变量提升