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日

相关文章

  • JS使用window.requestAnimationFrame()实现逐帧动画

    下面是详细讲解“JS使用window.requestAnimationFrame()实现逐帧动画”的完整攻略: 什么是window.requestAnimationFrame() window.requestAnimationFrame()是浏览器提供的一种在下一帧动画前执行的方法,通常用作执行逐帧动画,相比于setTimeout或者setInterval,…

    JavaScript 2023年6月10日
    00
  • javascript中怎么做对象的类型判断

    在JavaScript中,我们可以使用typeof、instanceof、Object.prototype.toString()三种方式来判断一个对象的类型。 使用typeof typeof操作符可以用来判断一个对象的类型,但是它并不完全准确。例如,typeof null返回的是object,但是我们知道null并不是对象类型。 typeof null //…

    JavaScript 2023年5月27日
    00
  • JS将时间秒转换成天小时分钟秒的字符串

    要将时间秒转换成天小时分钟秒的字符串,可以分别计算出总共的天数、小时数、分钟数和剩余的秒数,并将其拼接成字符串。 下面是一条完整的攻略: 步骤1:计算总共的天数 首先,我们可以将总的时间秒转换成天数,可以使用以下公式: var day = Math.floor(seconds / (3600 * 24)); 这里使用了 Math.floor() 方法来将结果…

    JavaScript 2023年5月27日
    00
  • javascript删除数组元素的七个方法示例

    JavaScript删除数组元素的七个方法示例 在JavaScript中,删除数组元素是经常会遇到的一个问题。本文将详细介绍七种不同的方法来删除JavaScript数组中的元素。 方法一:splice()方法 splice()方法是JavaScript中最通用的删除数组元素的方法。使用此方法可以从数组中删除任意数量的元素,通过指定要删除的元素的索引位置和要删…

    JavaScript 2023年5月27日
    00
  • cordova+vue+webapp使用html5获取地理位置的方法

    接下来我将为您讲解“cordova+vue+webapp使用html5获取地理位置的方法”的完整攻略。 1. 简介 H5的地理信息API,是HTML5新增的API之一,通过使用该API,我们可以获取到手机端、PC端等设备的地理位置信息。本文将使用Cordova+Vue框架进行H5地理信息获取的一些操作,其中,Cordova则是在构建混合APP时采用的,该方法…

    JavaScript 2023年6月11日
    00
  • 简单实现js页面切换功能

    当我们需要在网站页面中实现切换效果,通常需要用到 JavaScript 来实现。下面是实现 js 页面切换功能的完整攻略: 第一步:添加 HTML 结构 首先,在需要实现页面切换的 HTML 页面中,需要添加跳转链接以及对应的容器标签。例如,我们想要实现跳转到“首页”和“关于我们”两个页面,则可以添加如下代码: <!DOCTYPE html> &…

    JavaScript 2023年6月11日
    00
  • javascript中巧用“闭包”实现程序的暂停执行功能

    闭包是JavaScript的一个重要概念,它可以创建独立的作用域,保护内部变量的安全性。除此之外,闭包还可以用来实现一些特殊的功能,比如程序的暂停执行。 具体来说,利用闭包实现程序的暂停执行,需要用到JavaScript中的generator(生成器)和Promise(承诺)这两个特性。下面是实现的详细攻略。 简单示例 首先,我们来看一个简单的示例,实现一个…

    JavaScript 2023年6月10日
    00
  • js 解析 JSON 数据简单示例

    下面我将详细讲解“js 解析 JSON 数据简单示例”的完整攻略: 什么是 JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于传输和存储数据。它基于JavaScript语言的一个子集,具有良好的可读性,易于编写和理解。JSON格式数据可以简单地使用JavaScript对其进行解析和操作。下面是一个JSO…

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