首页 > 编程语言 >python测试开发django-198.bootstrap-formvalidation校验成功发ajax请求

python测试开发django-198.bootstrap-formvalidation校验成功发ajax请求

时间:2022-11-08 10:59:16浏览次数:42  
标签:function 198 form python formvalidation 校验 表单 nbsp 提交

前言

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">用&nbsp;户&nbsp;名:</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">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</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();     // 重置校验
        }

标签:function,198,form,python,formvalidation,校验,表单,nbsp,提交
From: https://www.cnblogs.com/yoyoketang/p/16868855.html

相关文章

  • python 5 列表
    列表列表相当于其他语言的数组初使用例:#作者:咸瑜#代码时间:2022年11月2日blos=['咸瑜的第一篇博客','Hello,Java',18]print(id(blos))print(type(blos))prin......
  • python Tips ----- 类型转换String、写入/追加文件、正则表达式字符、yield关键字
      类型转换String写入/追加文件 正则表达式字符  yield关键字  ......
  • python 重载
    classVector:def__init__(self,x=0.0,y=0.0,z=0.0):self.x=xself.y=yself.z=zdef__str__(self):return'Vecto......
  • python 使用docker开发
    背景pycharm+win10环境开发很多时候需要编译一些c++拓展例如bcrypt==3.1.4win安装一堆的MicrosoftVisualC++14.0isrequired使用docker可以模拟linu......
  • Python 读取图片的位置写入txt
    importossaveBasePath=r'E:\Mine_personnel'#存放txt文件的地址jpgfilepath=r'E:\Mine_personnel\images\val'#jpg图片的地址ftest=open(os.path.join(s......
  • python进阶(26)collections标准库
    前言这个模块实现了特定目标的容器,以提供Python标准内建容器dict,list,set,和tuple的替代选择。这个模块提供了以下几个函数函数作用namedtuple()创建命......
  • 【Python】Python使用Tk实现动态爱心效果
    【Python】Python使用Tk实现动态爱心效果是抄的一个UP主的(视频链接在文章结尾),自己改了点小东西,加了注释,然后最后光环的那里UP没有放出一部分代码,自己脑补了。写的时候发现......
  • 垃圾蜘蛛UA屏蔽封禁python|SM-G900P|OPPO A33|DataForSeoBot|omgili|SemrushBot|Adsbo
    (python|Python|SM-G900P|OPPOA33|DataForSeoBot|omgili|SemrushBot|Adsbot|AhrefsBot|mj12bot|MJ12|WebMeUp|serpstatbot|leiki|opensiteexplorer|hubspot)列表里面有两......
  • python课本学习-第一章
    chapter1python开发入门1、python之父:GuidovanRossum2、python语言的特征:简单易学免费&开源可移植性解释性面向对象在面向对象的语言中,程序是......
  • Python中变量的使用
    #函数学了#print()#id()#type()#快递,包裹变量=包裹#变量包括变量名变量值内存地址#变量的作用就是存储数据name='666'#print('helloworld')#......