python测试开发django-162.ajax 提交表单,防重复提交
2021/10/23 17:09:45
本文主要是介绍python测试开发django-162.ajax 提交表单,防重复提交,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
form 表单提交的时候,当快速点击提交按钮的时候,会触发多个请求过去,会导致重复添加。
前端页面
前端form表单页面,2个输入框,一个提交按钮
<form id="form" action="" method="post" class="form-horizontal" role="form"> <div class="form-group"> <label for="project_name" class="col-xm-1 col-sm-2 col-md-1 control-label">项目名称:</label> <div class="col-xs-10 col-sm-8 col-md-5" > <input type="text" class="form-control" id="project_name" name="project_name" placeholder="请输入项目名称"> </div> </div> <div class="form-group"> <label for="responsible_name" class="col-xm-1 col-sm-2 col-md-1 control-label">负责人员:</label> <div class="col-xs-10 col-sm-8 col-md-5" > <input type="text" class="form-control" id="responsible_name" name="responsible_name" placeholder="请输入负责人"> </div> </div> <div class="form-group"> <div class="col-xs-10 col-sm-offset-2 col-sm-8 col-md-offset-1 col-md-5" > <input id="save" type="button" class="form-control btn btn-success" value="点击提交"> </div> </div> </form>
这里适用ajax添加请求
<script> /** 定义表单提交事件 */ function project_save(){ var $form = $("#form"); // The form instance $.ajax({ type:'post', url:'/page', data: $form.serialize(), dataType:'json', success: function(data){ if(data.code == 0){ console.log("提交成功"); // 重定向到列表页 location.href="/page/list_project/"; }else{ alert('添加失败') } }, error: function (jqXHR, textStatus, e) { alert("提交异常:"+e); } }); } //点提交按钮,发请求 $('#save').click(function(e) { project_save(); }) </script>
遇到问题,当快速点提交按钮多次,会触发多个请求
beforeSend 禁用添加按钮
解决办法,在点提交按钮,发请求之前,可以调用beforeSend 方法,添加一个disabled属性,禁用按钮。这样用户就无法继续点击了。
收到返回结果的时候,再取消disabled属性
/** 定义表单提交事件 */ function project_save(){ var $form = $("#form"); // The form instance $.ajax({ type:'post', url:'/page', data: $form.serialize(), dataType:'json', beforeSend: function() { // 设置disabled阻止用户继续点击 $('#save').attr('disabled', 'disabled'); }, success: function(data){ if(data.code == 0){ console.log("提交成功"); // 重定向到列表页 location.href="/page/list_project/"; }else{ // 让按钮生效,重新可点击 $('#save').removeAttr('disabled'); alert('添加失败') } }, error: function (jqXHR, textStatus, e) { // 让按钮生效,重新可点击 $('#save').removeAttr('disabled'); alert("提交异常:"+e); } }); }
这样就能解决快速点击,导致前端页面重复提交的问题
这篇关于python测试开发django-162.ajax 提交表单,防重复提交的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南