jQuery form插件之formDdata参数校验表单及验证后提交

yizhihongxing

下面是详细讲解“jQuery form插件之formData参数校验表单及验证后提交”的完整攻略。

什么是jQuery form插件?

jQuery form插件是一个可以方便处理表单提交的jQuery插件,它简化了表单提交时的Ajax处理,并提供了一些表单处理辅助功能。

什么是formData参数

formDataparams刷新时将用于测试表单中所有可用的手段,例如设置的“数据”参数以下列方式之一来扩展请求数据对象(对象已序列化)。

1.与name的值合并。
2.作为顶级对象使用(如果是对象类型)。
3.作为表单数据键值对数组中的一个额外参数。
当data参数是数组时,jQuery 会在内部以 .serialize() 将其序列化。例如,可以使用以下方法将所有表单字段的值同时传递给服务器。

$(document).on('click','#submit',function(){
  $('form').ajaxSubmit({
    type:'post',
    url:'xxx.php',
    dataType:'json',
    data:$('form').serialize()+'&type=a',
    success:function(data){
      console.log(data);
    },
    error:function(err){
      console.log(err);
    }
  });
});

在这里我们使用了serialize()对表单数据进行序列化,而formData参数则是在与之一起使用时对表单数据进行扩展的。

formData参数校验表单及验证后提交

当使用formData参数来提交表单时,我们可以对表单中的数据进行校验,并在校验通过后再做提交。下面是使用formData参数进行表单校验及提交的详细步骤。

步骤一:引入jQuery和jQuery form插件

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery.form/4.3.0/jquery.form.min.js"></script>

步骤二:编写表单HTML代码

<form method="post" action="demo.php" id="form">
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username"><br>
  <label for="password">密码:</label>
  <input type="password" id="password" name="password"><br>
  <input type="submit" id="submit" value="提交">
</form>

步骤三:编写jQuery代码

$(document).on('click','#submit',function(){
  // 对输入框的值进行校验
  if($('#username').val().length<6){
    alert('用户名长度不能少于6位!');
    return false;
  }
  if($('#password').val().length<6){
    alert('密码长度不能少于6位!');
    return false;
  }
  // 使用formData参数提交表单
  $('#form').ajaxSubmit({
    type: 'post',
    url: 'demo.php',
    dataType: 'json',
    data: {
      formData: true // 添加formData参数
    },
    success: function(data){
      console.log(data);
    },
    error: function(xhr){
      console.log(xhr.responseText);
    }
  });
  return false;
});

这段代码中,我们首先对输入框的值进行了校验,如果校验不通过则不做提交,否则使用formData参数提交表单数据。

示例一:根据表单的name属性自动校验及提交表单

<form method="post" action="demo.php" id="form2">
  <label for="username2">用户名:</label>
  <input type="text" id="username2" name="username2" data-required="true"
         data-msg-required="用户名不能为空"
         data-minlength="6" data-msg-minlength="用户名长度不能小于6位"><br>
  <label for="password2">密码:</label>
  <input type="password" id="password2" name="password2" data-required="true"
         data-msg-required="密码不能为空"
         data-minlength="6" data-msg-minlength="密码长度不能小于6位"><br>
  <input type="submit" id="submit2" value="提交">
</form>

这里我们在输入框上使用了data-*属性来指定校验规则。例如,data-required="true"表示该输入框内容不能为空,data-msg-required="用户名不能为空"表示当该输入框内容为空时需要提示的错误信息。我们可以根据这些规则自动进行表单校验。

$(function(){
  // 对form2表单中的输入框进行校验
  $('#form2').find(':input').each(function(){
    var $this = $(this);
    if($this.data('required')){
      $this.rules('add', {
        required: true,
        messages: {
          required: $this.data('msg-required')
        }
      });
    }
    if($this.data('minlength')){
      $this.rules('add', {
        minlength: $this.data('minlength'),
        messages: {
          minlength: $this.data('msg-minlength')
        }
      });
    }
  });
  // 使用formData参数提交表单
  $('#form2').ajaxForm({
    url: 'demo.php',
    dataType: 'json',
    data: {
      formData: true
    },
    beforeSubmit: function(arr,$form,options){
      // 表单校验
      if($('#form2').valid()){
        return true;
      }else{
        return false;
      }
    },
    success: function(data){
      console.log(data);
    },
    error: function(xhr){
      console.log(xhr.responseText);
    }
  });
});

这段代码中,我们使用了jQuery.validate插件对表单进行了校验。可以看到我们使用$('#form2').find(':input').each()对所有输入框进行了遍历,并根据输入框上的data-*属性添加了对应的规则。并在beforeSubmit回调函数中调用$('#form2').valid()方法进行表单校验。

示例二:使用jQuery.validate插件手动校验表单及提交

<form method="post" action="demo.php" id="form3">
  <label for="username3">用户名:</label>
  <input type="text" id="username3" name="username3"><br>
  <label for="password3">密码:</label>
  <input type="password" id="password3" name="password3"><br>
  <input type="submit" id="submit3" value="提交">
</form>
$(function(){
  // 使用jQuery.validate插件对表单进行手动校验
  $('#form3').validate({
    rules: {
      username3: {
        required: true,
        minlength: 6
      },
      password3: {
        required: true,
        minlength: 6
      }
    },
    messages: {
      username3: {
        required: '用户名不能为空',
        minlength: '用户名长度不能小于6位'
      },
      password3: {
        required: '密码不能为空',
        minlength: '密码长度不能小于6位'
      }
    },
    submitHandler: function(form){
      // 使用formData参数提交表单
      $(form).ajaxSubmit({
        url: 'demo.php',
        dataType: 'json',
        data: {
          formData: true
        },
        success: function(data){
          console.log(data);
        },
        error: function(xhr){
          console.log(xhr.responseText);
        }
      });
    }
  });
});

这段代码中,我们首先使用jQuery.validate插件对表单进行了手动校验,并指定了校验规则及错误提示信息。在submitHandler回调函数中,我们使用formData参数提交表单数据。

总结

通过本文的讲解,我们了解了jQuery form插件中的formData参数,并使用该参数对表单数据进行校验及提交。同时,我们也学习到了两种不同的表单校验方式,一种是通过data-*属性自动校验表单,另一种是使用jQuery.validate插件手动校验表单。这些方法可以让我们更加方便地处理表单数据,并有效地提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery form插件之formDdata参数校验表单及验证后提交 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • vue使用GraphVis开发无限拓展的关系图谱的实现

    Vue使用GraphVis开发无限拓展的关系图谱的实现 简介 GraphVis是一款基于JavaScript的网络可视化库,它支持将任何TCP/IP网络视为节点和边的集合,还支持关系网和流程图的绘制。在Vue项目中使用GraphVis可以方便地展示关系图谱,并且可以轻松实现拓展。 实现过程 步骤一:安装GraphVis库 可以使用npm命令来安装GraphV…

    JavaScript 2023年6月11日
    00
  • 关于JavaScript中JSON的5个小技巧分享

    下面是关于JavaScript中JSON的5个小技巧分享的完整攻略: 1. 使用JSON.parse()解析JSON字符串 在JavaScript中,我们可以使用JSON.parse()方法将JSON字符串解析为JavaScript对象。例如: const jsonStr = ‘{"name": "Tom", &quo…

    JavaScript 2023年5月27日
    00
  • Javascript MAX_VALUE 属性

    以下是关于JavaScript MAX_VALUE属性的完整攻略。 JavaScript MAX_VALUE属性 JavaScript MAX_VALUE属性是Number对象的一个属性,它表示JavaScript中最大的数值为1.79E+308。MAX_VALUE属性是常量,它不能被修改。 下面是一个使用MAX_VALUE属性的示例: console.lo…

    JavaScript 2023年5月11日
    00
  • 基于JavaScript实现文件共享型网站

    下面将详细讲解“基于JavaScript实现文件共享型网站”的完整攻略。 前置条件 熟悉HTML、CSS和JavaScript基本知识; 熟悉Node.js开发环境和相关模块。 操作步骤 1. 创建文件夹 首先在本地文件夹中创建一个新的文件夹,命名为“file-sharing-website”。 2. 初始化项目 打开终端,进入到该文件夹中,执行以下命令: …

    JavaScript 2023年5月27日
    00
  • 正则表达式中test、exec、match的区别介绍及括号的用法

    正则表达式是用于匹配文本的强大工具,它允许您使用模式来搜索、替换和操作文本。在使用正则表达式时,test、exec、match及括号都是常用的概念,它们的用法与意义都不同。 test、exec、match的区别介绍 test方法 test方法是RegExp对象的方法之一,它的作用是测试一个字符串是否匹配某个正则表达式,返回布尔值。如果匹配成功,test方法返…

    JavaScript 2023年6月10日
    00
  • Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)

    获取 string 中所有被匹配到的文本,可以用 JavaScript 的正则表达式和 replace 函数来实现。下面是详细的攻略: 步骤 1:创建正则表达式 首先要创建一个正则表达式,用来匹配 string 中的文本。正则表达式可以包括字面量和元字符组成,可以使用 / 或 new RegExp() 创建。 例如,我们创建一个正则表达式,用来匹配所有以字母…

    JavaScript 2023年6月10日
    00
  • javascript dom 基本操作小结

    Javascript DOM 基本操作小结 在编写基于Web的Javascript应用程序时,经常需要对Document Object Model(DOM)进行操作。本文将介绍DOM基本操作的相关知识,并提供一些示例。 什么是DOM? DOM是指文档对象模型(Document Object Model),用于在HTML或XML文档中表示和操作元素。DOM将整…

    JavaScript 2023年6月10日
    00
  • JS动画实现回调地狱promise的实例代码详解

    下面是“JS动画实现回调地狱promise的实例代码详解”的攻略: JS动画实现回调地狱promise的实例代码详解 什么是回调地狱 回调地狱指的是在嵌套的JavaScript回调函数中编写代码的情况。这种情况往往伴随着深度嵌套和复杂的控制流程,容易让代码难以理解和维护。 下面是一个典型的回调地狱示例: function getData(callback1)…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部