基于maven+ssm的增删改查之ajax校验用户名是否可用
时间:2022-07-23
本文章向大家介绍基于maven+ssm的增删改查之ajax校验用户名是否可用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
上一节利用js校验数据的合法性,这一节结合ajax请求验证用户名是否可用,即是否已经存在。
首先我们要根据输入的empName查询数据库是否存在该用户:
EmployeeController.java
//检查用户名是否可用
@ResponseBody
@RequestMapping("/checkuser")
public Msg checkUser(String empName) {
boolean b = employeeService.checkUser(empName);
if(b) {
return Msg.success();
}
return Msg.fail();
}
EmployeeService.java
public boolean checkUser(String empName);
EmployeeServiceImpl.java
@Override
public boolean checkUser(String empName) {
// TODO Auto-generated method stub
EmployeeExample example = new EmployeeExample();
Criteria criteria = example.createCriteria();
criteria.andEmpNameEqualTo(empName);
long count = employeeMapper.countByExample(example);
return count == 0;
}
add.js
//点击新增弹出模态框
$("#emp_add_modal_btn").click(function(){
//发送ajax请求,查出部门信息显示下拉列表
reset_form("#empAddModal form");
getDepts("#empAddModal select");
$("#empAddModal").modal({
backdrop:"static"
});
});
//清空表单样式和内容
function reset_form(ele){
$(ele)[0].reset();
$(ele).find('*').removeClass("has-error has-success");
$(ele).find(".help-block").text("");
}
//查询所有部门信息
function getDepts(ele){
$(ele).empty();
$.ajax({
url:"/curd_ssm/depts",
type:"GET",
success:function(result){
//console.log(result);
$.each(result.extend.depts,function(){
var optionEle = $("<option></option>").append(this.deptName).attr("value",this.deptId);
optionEle.appendTo(ele);
});
}
});
}
function show_validate_msg(ele,status,msg){
//为了清空之前的错误信息,免得即使输入正确了,输入框还是红色的
$(ele).parent().removeClass("has-success has-error");
$(ele).next("span").text("");
//进行比对
if("success"== status){
$(ele).parent().addClass("has-success");
$(ele).next("span").text(msg);
}else if("error" == status){
$(ele).parent().addClass("has-error");
$(ele).next("span").text(msg);
}
}
function validate_add_form(){
var empName = $("#empName_add_input").val();
var regName = /(^[a-zA-Z0-9_-]{6,16}$)|(^[u2E80-u9FFF]{2,5})/;
if(!regName.test(empName)){
//alert("用户名必须是6-16位英文或2-5位中文");
//$("#empName_add_input").empty();
show_validate_msg("#empName_add_input","error","用户名必须是6-16位英文或2-5位中文");
return false;
}else{
show_validate_msg("#empName_add_input","success","");
}
var email = $("#email_add_input").val();
var regEmail = /^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/;
if(!regEmail.test(email)){
//alert("邮箱格式不正确");
//$("#email_add_input").empty();
show_validate_msg("#email_add_input","error","邮箱格式不正确");
return false;
}else{
show_validate_msg("#email_add_input","success","");
}
return true;
}
$("#empName_add_input").change(function(){
//$("#empName_add_input").empty();
var empName = this.value;
$.ajax({
url:"/curd_ssm/checkuser",
data:"empName=" + empName,
type:"POST",
success:function(result){
if(result.code == 100){
show_validate_msg("#empName_add_input","success","用户名可用");
$("#emp_save").attr("ajx-va","success");
}else{
show_validate_msg("#empName_add_input","error","用户名不可用");
$("#emp_save").attr("ajx-va","error");
}
}
});
});
$("#emp_save").click(function(){
//alert($("#empAddModal form").serialize());
if(!validate_add_form()){
return false;
}
if($(this).attr("ajx-va")=="error"){
return false;
}
$.ajax({
url:"/curd_ssm/emp",
type:"POST",
data:$("#empAddModal form").serialize(),
success:function(result){
//关闭模态框,转到最后一页
$("#empName_add_input").empty();
$("#email_add_input").empty();
$("#empAddModal").modal('hide');
to_page(totalRecord);
//alert(result.msg);
}
});
});
红色标注是我们新增的,橙色部分需要我们注意的地方,
因为这种情况下如果不进行禁止保存按钮的使用,此时依然是可以保存的,添加"ajx-va"==error,在之后提交的时候进行判断,就可以避免这种情况的发生。改成正确用户名之后:
点击保存:
- CatBoost:一个自动处理分类(CAT)数据的机器学习库
- Python机器学习的练习八:异常检测和推荐系统
- Blade 模板中有关 section 的那些事
- 分布式计划任务设计与实现
- 怎样在Python的深度学习库Keras中使用度量
- 网络设备配置管理与版本控制
- 使用Python对Instagram进行数据分析
- 解决多标签分类问题(包括案例研究)
- Docker Compose + GPU + TensorFlow = Heart
- Tensorflow生成模型收集: GANs与VAEs
- How to Install Nginx and PHP-FPM on FreeBSD 10
- 使用Apache MXNet分类交通标志图像
- CentOS 6.4 + nginx-1.2.5 + php-5.4.15 + MySQL-5.5.31
- 面试问题 - 只用位操作在ABAP里实现a+b
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android开发之自定义刮刮卡实现代码
- Android ScrollView无法填充满屏幕的解决办法
- Android 监听屏幕是否锁屏的实例代码
- Android实现水波纹控件的方法
- Android中GridView布局实现整体居中方法示例
- Android SharedPreferences四种操作模式使用详解
- Ubuntu18.04下将 磁盘挂载在某目录下
- Android编程之绘图canvas基本用法示例
- Android 编译出错版本匹配问题解决办法
- Linux(CentOS7)使用 RPM 安装 mysql 8.0.11的教程
- Android Adapter里面嵌套ListView实例详解
- Centos7 安装达梦数据库的教程
- Android开发使用Handler实现图片轮播功能示例
- 简单实现Android刮刮卡效果
- CentOS7.4下 安装JDK1.8的图文教程