一个日期控件,
<div class="editor-label"> <label for="CommonModel_ReleaseDate">发布日期</label> </div> <div class="editor-field"> <input data-val="true" data-val-date="字段 发布日期 必须是日期。" data-val-required="×" id="CommonModel_ReleaseDate" name="CommonModel.ReleaseDate" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="CommonModel.ReleaseDate" data-valmsg-replace="true"></span> </div>
我点击发布后会触发客户端验证,如图
但是如果给发布日期加上class="easyui-datebox",变成
<div class="editor-label"> <label for="CommonModel_ReleaseDate">发布日期</label> </div> <div class="editor-field"> <input class="easyui-datebox" data-val="true" data-val-date="字段 发布日期 必须是日期。" data-val-required="×" id="CommonModel_ReleaseDate" name="CommonModel.ReleaseDate" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="CommonModel.ReleaseDate" data-valmsg-replace="true"></span> </div>
那么我再点击发布,发布日期不进行客户端验证了。
页面头部引用文
<head> <meta name="viewport" content="width=device-width" /> <title>添加</title> <script src="/Scripts/modernizr-2.6.2.js"></script> <script src="/Scripts/jquery-1.8.3.js"></script> <link href="/Scripts/EasyUi/themes/icon.css" rel="stylesheet"/> <script src="/Scripts/jquery.unobtrusive-ajax.js"></script> <script src="/Scripts/jquery.validate.js"></script> <script src="/Scripts/jquery.validate.unobtrusive.js"></script> <script src="/Scripts/EasyUi/easyloader.js"></script> </head>
这种原因是怎么造成的,如果想让easyui-datebox跟其他空间一起进行进行validate.unobtrusive验证要如何做?
看看 生成html中的的 input 是否 有所改变
生成的input 前后对比仅多了class="easyui-datebox"
如果不加class="easyui-datebox",而是写脚本
easyloader.load("datebox", function () { $("#CommonModel_ReleaseDate").datebox(); });
也是一样
@洞庭夕照:
easyui的控件都是自己生成了一套,原来的都是隐藏在傍边,是否真的一样,在浏览器中查看
不要使用easyui的验证,validate.unobtrusive验证足够了,我的www.langben.com的权限管理系统就是这样做的,嗯
我就是想不用easyui的验证,用validate.unobtrusive验证,要如何实现?
@洞庭夕照: 楼主,问题解决了没有,我也遇到了同样的问题,求指教。。。
@linda-1989:
同样的问题,解决了没?,求指教。。。
同样的问题,谁解决了啊,求指教。。。
发现了是因为js引用的位置不对导致jquery和easyui的命名冲突,后者把前者的验证方法覆盖了,相当于重写了。
我感觉还是easyui做前端验证比较灵活。在web.config中关闭mvc的客户端验证