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

下面是详细讲解“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日

相关文章

  • 详释JavaScript执行环境与执行栈

    详解JavaScript执行环境与执行栈 执行环境 执行环境是指JavaScript代码的运行环境,它决定了哪些变量和函数可以被访问到。在JavaScript中,有两种类型的执行环境:全局执行环境和函数执行环境。 全局执行环境 全局执行环境是JavaScript代码默认运行的环境。它会在浏览器或Node.js环境中被创建,在整个应用程序的生命周期中都存在,并…

    JavaScript 2023年6月10日
    00
  • 如何去除js中的json存在的转义字符\问题

    我们来讲解一下如何去除 JavaScript 中 JSON 存在的转义字符 ‘\’ 问题的完整攻略。 问题描述 在 JavaScript 中,JSON 对象的属性值中可能会存在转义字符,如 “\n” 表示换行、”\t” 表示水平制表符等。这会影响到我们对 JSON 数据的解析和使用,因此需要将其转义字符进行去除,将其还原成可读的字符串。 解决方案 我们可以利…

    JavaScript 2023年5月27日
    00
  • JS使用jsBarcode生成条形码(一维码)简单实例

    下面我将为你详细讲解“JS使用jsBarcode生成条形码(一维码)简单实例”的完整攻略。 什么是jsBarcode? jsBarcode是一个生成条形码(一维码)的JavaScript库,它可以在网页上直接使用JS代码生成条形码。 安装jsBarcode 如果你想在项目中使用jsBarcode,需要先安装它。可以通过npm安装,也可以手动下载源代码并引入。…

    JavaScript 2023年5月19日
    00
  • 动态调用CSS文件的JS代码

    动态调用 CSS 文件的 JS 代码是一种在页面加载时引入 CSS 文件的方式,这种方式可以使页面的开发更加灵活,可以根据不同的需求加载不同的 CSS 文件。下面是实现动态调用 CSS 文件的 JS 代码的完整攻略: 创建一个空的 link 元素 在页面中创建一个空的 link 元素,它的 href 属性指向 CSS 文件的路径,rel 属性为 styles…

    JavaScript 2023年6月11日
    00
  • 利用canvas实现的加载动画效果实例代码

    下面将为您详细讲解“利用canvas实现的加载动画效果实例代码”的完整攻略。 1. 创建canvas元素 首先,在HTML页面中创建canvas元素,并且为其设置宽高和样式,如下所示: <canvas id="myCanvas" width="200" height="200" style=&…

    JavaScript 2023年6月11日
    00
  • js判断文件类型大小并给出提示的实现方法

    下面就是“js判断文件类型大小并给出提示的实现方法”的完整攻略: 思路概述 获取文件类型 获取文件大小 判断文件类型和大小,给出提示信息 获取文件类型 文件类型可以通过文件后缀名来判断。可以通过以下方法获取文件后缀名: // 传入文件名,返回文件后缀名 function getFileSuffix(fileName) { var index = fileNa…

    JavaScript 2023年5月27日
    00
  • JS Ajax请求如何防止重复提交

    JS Ajax请求如何防止重复提交的攻略如下: 1. 基于状态锁的防重复提交 1.1 原理 基于状态锁的防重复提交原理是,在第一次请求(提交表单)时,将提交按钮禁用,等到本次请求成功后,再将提交按钮启用。期间再次点击提交按钮不产生任何反应,从而达到防止重复提交的目的。 1.2 代码示例 $(‘#form’).on(‘submit’, function(e) …

    JavaScript 2023年6月11日
    00
  • javascript ajax的5种状态介绍

    下面来详细讲解“JavaScript Ajax的5种状态介绍”的完整攻略。 什么是Ajax Ajax,全称Asynchronous JavaScript and XML,是指一种创建交互式,动态的Web应用程序的Web开发技术。它使得Web页面和服务器之间异步通信变得更加轻松和高效。 在Web中,Ajax最常用的场景是使用JavaScript进行异步请求并更…

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