python测试开发django-198.bootstrap-formvalidation校验成功发ajax请求
前言
form表单提交按钮是type="submit"
类型,输入框按回车会自动提交表单。
如果我们想自定义提交表单,可以使用ajax 提交。
Form 表单
一个登录页面的Form 表单
<form id="login-form" action="/api/login" method="POST" role="form" class="form-horizontal">
<div class="form-group">
<label for="username" class="col-sm-3 col-md-3 col-lg-3 control-label">用 户 名:</label>
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9" >
<input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-3 col-md-3 col-lg-3 control-label">密 码:</label>
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9" >
<input type="password" class="form-control" id="password" name="password" placeholder="请输入密码">
</div>
</div>
<div class="input-group-lg">
<input class="btn btn-success btn-block" id="loginBtn" type="submit" value="立即登录 > ">
</div>
</form>
input 提交按钮有type="submit"
属性,按回车或点登录按钮,都会触发form表单的提交
提交地址根据action="/api/login"
属性来设置。
如果我们想异步提交,通过ajax自己定义提交请求,需屏蔽回车提交事件
$("#login-for").submit(function () {
//按下回车/提交按钮后的操作
//返回false
return false;
});
formvalidation校验
表单校验成功后发请求
$(element).formValidation({
icon: {
valid : 'glyphicon glyphicon-ok',
invalid : 'glyphicon glyphicon-remove',
validating : 'glyphicon glyphicon-refresh'
},
fields: {
username: {
validators : {
notEmpty : {
message : '不能为空'
},
stringLength: {
min: 1,
max: 30,
message: '用户名称1-30位字符' },
regexp: {
regexp: /^[\u0391-\uFFE5A-Za-z0-9_\s]+$/,
message: '用户名称不能有特殊字符,请用中英文数字_'
}
}
},
password : {
validators : {
notEmpty : {
message : '不能为空'
},
stringLength: {
min: 6,
max: 16,
message: '密码6-16位字符' },
regexp: {
regexp: /^[\u0391-\uFFE5A-Za-z0-9_\s]+$/,
message: '不能有特殊字符,请用中英文数字下划线'
}
}
}
}
}).on('success.form.fv', function (e) {
// Prevent form submission 阻止默认的submit方法,用ajax提交
e.preventDefault();
// // Some instances you can use are
let $form = $(e.target); // The form instance
let fv = $(e.target).data('formValidation'); // FormValidation instance
$.ajax({
type:'post',
url:'/api/login',
contentType: "application/json",
data: JSON.stringify($form.serializeJson()),
dataType:'json',
beforeSend: function() {
// 发送请求,禁用提交按钮
$('#registerBtn').attr('disabled', 'disabled');
},
complete: function () {
// 请求完成移除 disabled 属性
$('#registerBtn').removeAttr('disabled');
},
success: function(result, status, xhr){
// 登录成功-立马进登录后页面
location.href="index.html";
},
error: function(jqXHR, textStatus, errorMsg){
fv.resetForm(); // 重置校验
});
});
登录失败,需重置校验
error: function(jqXHR, textStatus, errorMsg){
fv.resetForm(); // 重置校验
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-11-08 python测试开发django-169.过滤器django-filter 入门使用
2021-11-08 python测试开发django-168.jquery的clone()后 bootstrap-select 中 selectpicker 下拉框选择无效问题解决
2021-11-08 python测试开发django-167. jQuery中append() 动态新增的元素 click 事件无效的解决办法
2021-11-08 python测试开发django-166.jQuery 使用append()动态添加div元素
2019-11-08 python测试开发django-72.删除表后如何重新生成表