layui表单验证实现Ajax异步判断用户名重复

作者:半夏时间:2026-10-23 10:56:25浏览:627

本文介绍如何在Layui框架中解决表单提交前判断用户名是否存在的问题。通过自定义form.verify规则,利用Ajax同步请求后端接口,实时检测用户名唯一性,并在前端给出明确提示,避免无效提交。

Layui表单验证与Ajax用户名检测实现

具体实现方案如下。

Layui表单验证与Ajax用户名检测实现

在表单提交前,通常希望校验用户名是否已存在。Layui原生功能未直接提供此支持,若使用onblur失去焦点事件或手动触发按钮,不仅代码繁琐且影响界面美观。因此,推荐利用Layui提供的form.verify机制进行自定义验证。

HTML结构部分。


<div class="layui-form-item">
 <label class="layui-form-label">用户名</label>
 <div class="layui-input-block">
 <input type="text" id="username" name="username" autocomplete="off"
  class="layui-input" lay-verify="username" placeholder="请输入用户名">
 </div>
 </div>
注意lay-verify="username" ,在js文件中定义验证事件。

JavaScript逻辑部分。


form.verify({
 //将用户名是否可用作为验证条件 表单提交时触发
 ,username:function(value){
 var datas={username: value};
 var message = '';
 $.ajax({
  type:"POST",
  url:xxx(对应后台的方法),
  async: false, //改为同步请求
  contentType:'application/json;charset=UTF-8',
  data:JSON.stringify(datas),
  dataType:'json',
  success:function(data){
  if(data){
   
  }else{
   message ="用户名已存在,请重新输入!"
  }
  }
 });
 //需要注意 需要将返回信息写在ajax方法外
 if (message !== '') 
      return message;
 }
});

后端接口方法部分。


//管理员注册时验证用户名是否可用
 @RequestMapping(value="/xxx",method=RequestMethod.POST,consumes="application/json")
 @ResponseBody
 public boolean toVerifyUsername(@RequestBody Admin admin) {
 String username=admin.getUsername();
 System.out.println(username);
 //根据用户名查询管理员(包括status为0的  以防恢复引起bug)
 Admin admin1=adminService.findByUsernameno(username);
 if(admin1==null)
 {
  System.out.println(111);
  //返回true则为没有该用户名可以被注册
 return true; 
 }else {
 System.out.println(222);
 return false;
 }
 }

运行效果展示。

Layui表单验证与Ajax用户名检测实现

以上即为Layui表单验证结合Ajax判断用户名重复的完整实现,供参考使用。

作者最新文章