jQuery.form.js 详细用法_维护老项目使用

这篇具有很好参考价值的文章主要介绍了jQuery.form.js 详细用法_维护老项目使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

jquery-3.3.1.min.js : http://jquery.com/download

jquery.form.min.js :http://malsup.com/jquery/form/#tab7

jquery form 是一个表单异步提交的插件,可以很容易提交表单,设置表单提交的参数,并在表单提交前对表单数据进行校验和处理和表单提交后的函数调用。

表单代码:

<form id="form1" method="get" action="/day09/jqueryFormServlet">
    姓名:<input ><br>
    年龄:<input ><br>
    地址:<input ><br>
    兴趣:<p>
    h1:<input type="checkbox" >
    h2:<input type="checkbox" >
    h3:<input type="checkbox" >
    h4:<input type="checkbox" >
        </p>
    性别:
    男:<input type="radio" ><br>
    女:<input type="radio" ><br>
    <input type="submit" value="submit1" id="sub1">
    <input type="submit" value="submit2" id="sub2">

    <div id="p1">p</div>
</form>

这个插件有两个主要方法:

ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能;

他们都可以接受 0 个或一个参数,参数可以为一个函数或者一个 JS 对象,类似 json 格式;

ajaxForm()不能提交表单,只是为表单提交做准备:

①:传入函数

$("#form1").submit(function () {
    $('#form1').ajaxForm(function () {
        alert("提交成功2")
    })
})
但是虽然我看了很多博客都是这样写,我实际代码运行之后发现,“提交成功2”并没有打印,也就是函数没有进去,

而且提交后,页面会跳转到 action 的地址,也就是说,这个方法不能实现表单的异步提交,只是为表单提交做准备,但传入一个函数的方式不适合这个方法,因为没有进去,不知道是不是我写的有问题。但是如果传入一个 option 是对象,就能生效。

var options = {
    url: "/day09/jqueryFormServlet", //提交地址:默认是form的action,如果申明,则会覆盖
    type: "post",   //默认是form的method(get or post),如果申明,则会覆盖
    beforeSubmit: beforeCheck, //提交前的回调函数
    success: successfun,  //提交成功后的回调函数
    target: "#output",  //把服务器返回的内容放入id为output的元素中
    dataType: "json", //html(默认), xml, script, json...接受服务端返回的类型
    clearForm: true,  //成功提交后,是否清除所有表单元素的值
    resetForm: true,  //成功提交后,是否重置所有表单元素的值
    timeout: 3000     //限制请求的时间,当请求大于3秒后,跳出请求
};

②:传入一个 js 对象

$('#form1').ajaxForm(options)

ajaxSubmit()方法:实现表单的异步提交

$("#form1").submit(function () {
    $('#form1').ajaxSubmit(function () {
        alert("提交成功2")
    })

    return false;
})

这里必须返回 false,不然表单会提交两次,因为异步提交一次,默认提交一次;

$('#form1').ajaxSubmit(options)

但如果传入 options 对象则只会提交一次,目前我不知道什么原理。文章来源地址https://www.toymoban.com/news/detail-405885.html

//表单提交前,数据校验
/*
 * formData:表单元素数组对象,数组里面每一个元素都是一个<input>元素,可以通过.name、.value的方式访问元素
 * 提交表单时,Form插件会以Ajax方式自动提交这些数据,格式如:[{name:user,value:val },{name:pwd,value:pwd}]
 * form: jQuery对象,封装了表单的元素
 * options: options对象
 * */
function beforeCheck(formData, form, options) {

    //利用formData校验
    //$.param(formData) 可以和formSerialize方法一样,实现表单元素的序列化
    var queryString = $.param(formData);
    $("#p1").html(queryString + "<br>")

    for (var i = 0; i < formData.length; i++) {
        //打印每一个元素的name属性和value值
        //alert(formData[i].name + "  " + formData[i].value)
    }

    //利用form校验
    var formDom = form[0];

    //formDom是jQuery表单对象,感觉类似数组,可以通过下标访问元素
    //比如:formDom[0].targetName 表示元素标签名,INPUT
    var name = formDom["name"].value;//这里寻找name为name或者id为name的元素的值
    var age = formDom["age"].value;

    alert(name+"  "+age)
    if (!name || !age) {
        alert("name age 不能为空")
    }

    //利用fieldValue校验
    //返回选择元素的value值,是一个数组
    var name = $("input[name='name']").fieldValue();
    var hobby = $("input[name='hobby']").fieldValue();
    if (!name[0] || !hobby[0]) {
        alert("必须填姓名和选择兴趣")
    }

    //把表单的元素序列化,:name=姓名&age=年龄;以字符串的方式拼接所有表单元素
    var formSerializeStr = $("#form1").formSerialize();
    alert(formSerializeStr)
    //序列化某些表单元素 $("#form1 .ss")通过选择器选择某些元素
    //这里就是选择表单里面,有specialFields样式的元素;但是这里我用属性选择器没有生效,比如$("#form1[name='name']")
    var formSerializeStr = $("#form1 .specialFields").fieldSerialize();
    alert(formSerializeStr)


    return true;//如果return false,则校验不通过,表单不会提交
}

function successfun(data, status) {
    //data是提交成功后的返回数据,status是提交结果 比如success
    //返回数据的类型是通过options对象里面的dataType定义的,比如json、xml,默认是html

    //这里data.success是因为我后天返回的json数据的一个属性 String jsonText = "{'success':'提交成功'}";
    alert(data.success + "  " + status)
}

一、jQuery.Form.js 配置选项 options

选项 说明
url 表单提交数据的地址
type form 提交的方式 (method:post/get)
target 服务器返回的响应数据显示在元素 (Id) 号
beforeSerialize: function($form, options) 表单数据被序列化之前执行的回调函数,如果在内部 return false 将终止序列化和提交。
beforeSubmit: function(arr, $form, options) 表单数据被序列化成 arr 数组,并且在提交前触发的回调函数。
error 提交失败执行的回调函数
success 提交成功后执行的回调函数
data 除了表单数据外,还需要额外提交到服务器的数据
iframe 如果有 <input type="file"> 是否应该使用 iframe 来上传文件 (对旧版本浏览器而言)
iframeSrc 为 <iframe> 元素设定 src 属性值
iframeTarget 如果你想用自己的 iframe 来上传文件,可以将 Id 传给这个属性
dataType 期望服务器返回数据类型
clearForm 提交成功后是否清空表单中的字段值
restForm 提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态
timeout 设置请求时间,超过该时间后,自动退出请求,单位 (毫秒)
forceSync  
semantic  
uploadProgress  

二、可操作函数

函数 说明
ajaxForm 提交表单 与 ajaxSubmit 的区别在于是否触发浏览器的提交。
ajaxSubmit 提交表单
formSerialize 序列化表单
fieldSerialize 序列化字段
fieldValue 返回某个 input 的字段值
resetForm 重置表单为打开页时的状态
clearForm 清空表单的所有值
clearFields 清空某个字段值

到了这里,关于jQuery.form.js 详细用法_维护老项目使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在前端开发中,何时应该使用 jQuery,何时应该使用 Vue.js

    如果您是最近才开始进入 Web 前端开发领域的开发人员,那么您可能会听说过 jQuery。jQuery 是一个小巧而功能强大的 JavaScript 库,旨在简化跨浏览器 DOM 操作、事件处理、动画效果和 AJAX 等方面的操作,可以让开发人员更轻松地开发出高质量的网站和 Web 应用程序。 何时应该使

    2024年02月02日
    浏览(39)
  • Js_reduce用法详解(超详细!!!)

    array.reduce(function(pre, currentValue, currentIndex, arr), initialValue) recude函数接收两个参数,一个为回调函数,一个为初始赋值 第一个参数的回调函数又接收四个参数,分别为(初始值或计算结束后的返回值,当前元素,当前元素的索引,当前元素所属的数组对象) 第二个参数是传给

    2024年02月16日
    浏览(47)
  • jQuery成功之路——jQuery动画效果和遍历效果概述

    1.1显示效果 方法 方法名称 解释 show([speed],[easing],[fn]]) 显示元素方法 hide([speed],[easing],[fn]]) 隐藏元素方法 toggle([speed],[easing],[fn]) 切换元素方法,显示的使之隐藏,隐藏的使之显示 参数 参数名称 解释 speed 三种预定速度之一的字符串(\\\"slow\\\",\\\"normal\\\", or \\\"fast\\\")或表示动画时长的毫秒

    2024年02月10日
    浏览(24)
  • 031-安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

    1、三方库-JQuery-使用安全 2、打包器-WebPack-使用安全 演示案例: ➢打包器-WebPack-使用安全 ➢第三方库-JQuery-使用安全 创建WebPack,并创建目录src在目录下创建1.js 2.js 1.js 2.js 在创建index.html 由于js相互依赖的顺序不同,造成无法执行 ; 使用 Webpack 的主要原因: 模块化支持 :

    2024年02月22日
    浏览(40)
  • Day31:安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

    目录 打包器-WebPack-使用安全 第三方库-JQuery-使用安全 思维导图 JS知识点: 功能:登录验证,文件操作, SQL 操作,云应用接入,框架开发,打包器使用等 技术:原生开发, DOM ,常见库使用,框架开发( Vue , NodeJS ),打包器 ( Webpack ) 等 安全:原生开发安全, NodeJS 安全,

    2024年03月14日
    浏览(42)
  • 使用罗技鼠标后 弹出当前页面的脚本发生错误AppData/Local/Temp/LogiUI/Pak/js/jquery-1.3.2.min.js解决

    使用的台式机,没有蓝牙驱动,在用logi无线鼠标时,把鼠标连接插入台式机后弹出的如上图所示这个提示,无论是点是/否,还是X掉上图提示,电脑右下角的图依然存在。不习惯这丫的存在。 我重启还是有,然后搜寻解决方式如下: WIN+R,在弹出的对话框输入msconfig,然后点

    2024年02月13日
    浏览(28)
  • vue3 antd项目实战——Form表单的重置【使用resetFields()重置form表单数据、清空输入框】

    文章内容 文章链接 Form表单 提交和校验 https://blog.csdn.net/XSL_HR/article/details/128495087?spm=1001.2014.3001.5501 Form表单的 嵌套使用 https://blog.csdn.net/XSL_HR/article/details/128488913?spm=1001.2014.3001.5501 Form表单的 动态校验规则 https://blog.csdn.net/XSL_HR/article/details/128437275?spm=1001.2014.3001.5501 往期文章

    2024年02月02日
    浏览(41)
  • CMake入门教程【实战篇】使用开源库cmake-modules简化项目开发与维护

    本教程介绍了rpavlik/cmake-modules,一个CMake模块集合,旨在简化和优化CMakeLists.txt文件的编写和维护工作。该集合尤其对虚拟现实和物理模拟包的开发者有用,同时也包含通用实用模块和针对旧版CMake的补丁或解决方案。 项目托管在GitHub上,可通过链接访问:rpavlik/cmake-modules 查

    2024年01月15日
    浏览(39)
  • 安全开发-JS应用&NodeJS指南&原型链污染&Express框架&功能实现&审计&WebPack打包器&第三方库JQuery&安装使用&安全检测

    Node.js是运行在服务端的JavaScript 文档参考:https://www.w3cschool.cn/nodejs/ Nodejs安装:https://nodejs.org/en 三方库安装 express:Express是一个简洁而灵活的node.js Web应用框架 body-parser:node.js中间件,用于处理 JSON, Raw, Text和URL编码的数据。 cookie-parser:这就是一个解析Cookie的工具。通过re

    2024年02月11日
    浏览(48)
  • vue3 ts element plus form表单二次封装详细步骤 (附参数、类型详细介绍及简单使用示例)

    上篇table 表格封装 讲到项目中经常会用到 table 表格,所以做了封装。当然,form 表单使用的频率依然很高,所以和封装 table 表格的思路相似,对 form 表单也做了一个二次封装的组件。 查看国内预览站 查看国外预览站 1. EasyForm 表单组件封装 src/components/EasyForm/index.vue Form 表单

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包