AJax技术

Jquery Validation 中使用remote做ajax验证时遇到的问题

字号+ 作者:H5之家 来源:H5之家 2018-02-15 11:03 我要评论( )

需要验证的页面中js代码如下: $(#inputForm).validate({ rules: { loginName: { required: true, remote: user!checkLoginName.action?oldLoginName=&quo ...

需要验证的页面中js代码如下:

$("#inputForm").validate({ rules: { loginName: { required: true, remote: "user!checkLoginName.action?oldLoginName=" + encodeURIComponent('${loginName}') }, name: "required", password: { required: true, minlength:3 }, passwordConfirm: { equalTo:"#password" }, email:"email", checkedRoleIds:"required" }, messages: { loginName: { remote: "用户登录名已存在" }, passwordConfirm: { equalTo: "输入与上面相同的密码" } } });

其中对loginName做的验证是看数据库中是否有重复的名称,使用的remote支持的是ajax提交,提交时会提交两个参数一个是loginName还有一个就是oldLoginName,之所以传递两个参数就是为了在修改的时候oldLoginName代表的是没有修改的原始值。hibernate也dao也提供了对这种查询的支持,代码如下:

/** * 判断对象的属性值在数据库内是否唯一. * * 在修改对象的情景下,如果属性新修改的值(value)等于属性原值(orgValue)则不作比较. * 传回orgValue的设计侧重于从页面上发出Ajax判断请求的场景. * 否则需要SS2里那种以对象ID作为第3个参数的isUnique函数. */ public boolean isPropertyUnique(String propertyName, Object newValue, Object orgValue) { if (newValue == null || newValue.equals(orgValue)) return true; Object object = findUniqueByProperty(propertyName, newValue); return (object == null); }

函数返回true的时候证明数据库中没有重名的loginName,当返回的是false证明数据库中有重名的loginName

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jQuery Dom元素操作技巧,jquerydom操作技巧

    jQuery Dom元素操作技巧,jquerydom操作技巧

    2018-02-15 13:08

  • 征服AjaxWeb2.0开发技术详解(附光盘)

    征服AjaxWeb2.0开发技术详解(附光盘)

    2018-02-15 11:03

  • ajax分类文章列表

    ajax分类文章列表

    2018-02-15 11:02

  • dede用ajax只调用会员等级等部分信息

    dede用ajax只调用会员等级等部分信息

    2018-02-15 09:06

网友点评