当前位置: 首页 > news >正文

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 对象则只会提交一次,目前我不知道什么原理。

//表单提交前,数据校验
/** 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 表示元素标签名,INPUTvar 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表单提交数据的地址
typeform 提交的方式 (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 详细用法_维护老项目使用

概述 jquery-3.3.1.min.js &#xff1a; http://jquery.com/download jquery.form.min.js &#xff1a;http://malsup.com/jquery/form/#tab7 jquery form 是一个表单异步提交的插件&#xff0c;可以很容易提交表单&#xff0c;设置表单提交的参数&#xff0c;并在表单提交前…...

【Java】关于你不知道的Java大整数运算之BigInteger类超级好用!!!

目录 一、BigInteger类简单介绍 二、BigInteger构造方式 &#xff08;1&#xff09;构造方式 &#xff08;2&#xff09;输入方式 三、BigInteger常见的成员方法 &#xff08;1&#xff09;方法介绍 &#xff08;2&#xff09;方法使用演示 1.加减乘除余 2.比较 3.绝…...

运维是不是没有出路了?

瑞典马工的​​《是时候让运维集体下岗了》一出&#xff0c;就让运维人为之一颤&#xff0c;​人人自危。文章开篇就提到&#xff1a;​​明人不说暗话&#xff0c;在云原生和DevOps成熟的今天&#xff0c;运维作为一个岗位和团队已经完成了历史任务&#xff0c;应该退出舞台了…...

【C++笔试强训】第七天

选择题 解析&#xff1a;内联函数&#xff08;inline&#xff09;一般用于代码较少&#xff0c;代码块里面没有递归且频繁调用的函数&#xff0c;是一种以空间换时间&#xff08;不是指内存&#xff0c;而是指令变多编译出来的可执行程序会变大&#xff09;的做法。内联函数在预…...

mysql binlog 一直追加写,磁盘满了怎么办?

文章目录 mysql binlog 清理策略1、设置binlog最大的文件数和文件大小2、定时清理过期binlog文件3、手动清理binlog文件4、禁用或启用binlogmysql binlog用于记录mysql数据库所有变更(数据库的DDL、DML操作)包括用户执行的语句,以及底层引擎所执行的操作的二进制日志,主要用…...

缓存穿透、缓存雪崩、缓存击穿解决方案

什么是缓存 缓存就是数据交换的缓冲区&#xff08;称作Cache&#xff09;,是存贮数据的临时地方&#xff0c;一般读写性能较高。 添加 redis 缓存 给店铺类型查询业务添加缓存 需求&#xff1a;添加ShopTypeController中的queryTypeList方法&#xff0c;添加查询缓存 缓存更新…...

web + servlet + jdbc mysql 实现简单的表单管理界面

目录数据库创建数据库连接servlet创建,这里注意一下我的数据库我自己改了一下名字lhx网页html运行文件目录展示首先我们准备好开发使用的工具以及配置 idea2020 tomcat8.5 创建javaweb参考idea编译Tomcat详细步骤 IDEA通过JDBC连接数据库请参考jdbc连接数据库 需要登陆注册界面…...

Maven 国内镜像仓库

镜像仓库目标 当我们未定义任何远程仓库时&#xff0c;使用 Maven 更新依赖时&#xff0c;其会去默认远程仓库中拉取&#xff0c;默认远程仓库 是国外地址&#xff0c;所以在国内访问特别慢&#xff0c;想提升访问速度&#xff0c;需要将国外地址换成国内地址 更换仓库地址的…...

day21 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先

二叉搜索树的最小绝对差 二叉搜索树&#xff08;Binary Search Tree&#xff0c;简称 BST&#xff09;是一种特殊的二叉树&#xff0c;它的每个节点都满足以下条件&#xff1a; 左子树上所有节点的值均小于该节点的值&#xff1b;右子树上所有节点的值均大于该节点的值&#…...

大学计算机(软件类)专业推荐竞赛 / 证书 官网及赛事相关信息整理

大学计算机专业(软件)推荐竞赛 / 证书 官网及赛事相关信息 一、算法类(丰富简历)&#xff1a; 1、ACM国际大学生程序设计竞赛&#xff1a; 官网&#xff1a;https://icpc.global/ 国内&#xff1a;http://icpc.pku.edu.cn/index.htm 报名方式&#xff1a;区域预赛一般每年9-1…...

Metasploit入门到高级【第九章】

预计更新第一章&#xff1a;Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章&#xff1a;Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章&#xff1a;Metasploit 基础 Metasploit 的基本概念Met…...

JDK之8后: 协程? 虚拟线程!!!

特性官方文档: https://openjdk.org/jeps/436 Java协程 近三十年来&#xff0c;Java 开发人员一直依赖线程作为并发服务器应用程序的构建块。每个方法中的每个语句都在线程内执行&#xff0c;并且由于 Java 是多线程的&#xff0c;因此多个执行线程同时发生。线程是Java的并发…...

体验 jeecg

体验 jeecg官网地址事前准备安装升级 node 和 npm 版本验证安装安装 pnpm clidocker 启动 MySQLdocker 启动 redisgit clone 项目启动JAVA项目 jeecg-boot启动Vue3项目 jeecgboot-vue3官网地址 http://www.jeecg.com/ 事前准备 (1) 为了回避Could not find artifact com.mic…...

投稿指南【NO.13】计算机学会CCF推荐期刊和会议分享(人工智能)

前 言国内高等院校研究生及博士毕业条件需要发表高水平期刊或者顶会&#xff08;清北上交等重点学校毕业要求为至少发一篇顶会&#xff09;&#xff0c;很多同学私信问到一级学会的会议论文怎么找、是什么&#xff0c;比如前段时间放榜的CVPR论文就是人工智能领域的顶会国际会议…...

一份sql笔试

1、 select substr(time,1,10),count(order_id),count(distinct passenger_id) from order where substr(time,1,7)2023-08 group by substr(time,1,10) order by substr(time,1,10);2、 select city_id from (select * from order where substr(time,1,7) 2022-08) t1 left j…...

交换瓶子

交换瓶子 贡献者&#xff1a;programmer_ada 有N个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有5个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起2个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么…...

二、Docker安装、启动、卸载、示例

Docker 支持 CentOS 6 及以后的版本&#xff0c;可以直接通过yum进行安装&#xff1a; 使用流程&#xff1a;启动主机 – 启动Docker服务 – 下载容器镜像 – 启动镜像得一个到容器 – 进入容器使用我们想要的程序 主机一般是Linux、Utuban 以下主机系统以CentOS7为例子&#…...

开心档之C++ STL 教程

C STL 教程 目录 C STL 教程 实例 在前面的章节中&#xff0c;我们已经学习了 C 模板的概念。C STL&#xff08;标准模板库&#xff09;是一套功能强大的 C 模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流行和常用的算法和数据结构…...

Thread 类的基本用法

文章目录一、线程创建1.1 Thread的常见构造方法2.1 创建线程二、线程中断2.1 Thread的几个常见属性2.2 中断线程三、线程等待四、线程休眠五、获取线程实例一、线程创建 1.1 Thread的常见构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用Runnable对象创建线…...

2023.3.28 天梯赛训练赛补题(病毒溯源 , 龙龙送外卖 , 红色警报)

文章目录1.病毒溯源问题&#xff1a;求树的最长链长度和字典序最小的最长链思路&#xff1a;2.龙龙送外卖思路&#xff1a;3.红色警报&#xff1a;思路&#xff1a;1.病毒溯源 问题&#xff1a;求树的最长链长度和字典序最小的最长链 思路&#xff1a; 一开始用 bfs 做的 &a…...

5分钟上手:在浏览器中创造惊艳的流体艺术特效

5分钟上手&#xff1a;在浏览器中创造惊艳的流体艺术特效 【免费下载链接】WebGL-Fluid-Simulation Play with fluids in your browser (works even on mobile) 项目地址: https://gitcode.com/gh_mirrors/web/WebGL-Fluid-Simulation 想要在浏览器中体验令人惊叹的流体…...

捉妖雷达Web版:如何解决游戏数据实时同步的技术挑战?

捉妖雷达Web版&#xff1a;如何解决游戏数据实时同步的技术挑战&#xff1f; 【免费下载链接】zhuoyao_radar 捉妖雷达 web版 项目地址: https://gitcode.com/gh_mirrors/zh/zhuoyao_radar 捉妖雷达Web版是一个开源的游戏辅助工具项目&#xff0c;旨在为捉妖游戏玩家提供…...

OpenClaw+GLM-4.7-Flash开发提效:日志分析+异常告警自动化

OpenClawGLM-4.7-Flash开发提效&#xff1a;日志分析异常告警自动化 1. 为什么需要自动化日志监控 作为开发者&#xff0c;我每天要面对服务器、应用和中间件产生的海量日志。曾经为了排查一个线上问题&#xff0c;我需要手动grep几十MB的日志文件&#xff0c;眼睛盯着屏幕找异…...

DreamScene2动态桌面软件:为Windows桌面注入活力的终极解决方案

DreamScene2动态桌面软件&#xff1a;为Windows桌面注入活力的终极解决方案 【免费下载链接】DreamScene2 一个小而快并且功能强大的 Windows 动态桌面软件 项目地址: https://gitcode.com/gh_mirrors/dr/DreamScene2 厌倦了千篇一律的静态桌面背景吗&#xff1f;DreamS…...

OpenGL 3D项目避坑指南:从贴图资源获取到交互菜单设计,我的CPT205大作业复盘

OpenGL 3D项目避坑指南&#xff1a;从贴图资源获取到交互菜单设计 当第一次接触OpenGL 3D项目时&#xff0c;许多计算机图形学学习者都会陷入相似的困境——如何在有限时间内完成一个既美观又功能完整的作品&#xff1f;本文将以CPT205课程大作业为例&#xff0c;分享从资源获取…...

Photoshop AI绘画终极指南:用中文轻松驾驭Stable Diffusion插件

Photoshop AI绘画终极指南&#xff1a;用中文轻松驾驭Stable Diffusion插件 【免费下载链接】Auto-Photoshop-StableDiffusion-Plugin A user-friendly plug-in that makes it easy to generate stable diffusion images inside Photoshop using either Automatic or ComfyUI a…...

从规格书到点亮屏幕:RK3568+GM8775C双通道LVDS调试全流程解析

RK3568GM8775C双通道LVDS屏幕调试实战&#xff1a;从参数解析到设备树配置 第一次拿到一块非标准LVDS屏幕时&#xff0c;我盯着规格书里密密麻麻的表格和数据完全无从下手。作为硬件工程师&#xff0c;我们常常需要面对各种定制化显示屏的驱动问题。本文将带你深入理解如何从屏…...

别再瞎猜了!手把手教你用公式算清摄像头MIPI Lane数(附Excel计算器)

摄像头MIPI Lane数计算实战&#xff1a;从理论到Excel工具全解析 在嵌入式摄像头模组开发中&#xff0c;MIPI Lane数的选择往往让工程师陷入两难&#xff1a;Lane数不足会导致数据吞吐瓶颈&#xff0c;而过度配置又会增加功耗和成本。我曾见过一个团队因为凭经验选择了2 Lane配…...

为什么你的FastAPI AI接口在K8s里流式失败?——基于eBPF追踪的12层网络栈+ASGI生命周期时序图(含cgroup内存隔离失效证据)

第一章&#xff1a;FastAPI 2.0 异步 AI 流式响应对比评测报告FastAPI 2.0 原生强化了对 async/await 的深度支持&#xff0c;尤其在处理大语言模型&#xff08;LLM&#xff09;的逐 token 流式生成场景中&#xff0c;显著提升了吞吐量与首字节延迟&#xff08;TTFB&#xff09…...

QT实战:用QScrollArea+QListWidget复刻迅雷设置界面(附完整源码)

QT实战&#xff1a;用QScrollAreaQListWidget复刻迅雷设置界面&#xff08;附完整源码&#xff09; 在桌面应用开发中&#xff0c;设置界面的设计往往考验着开发者对布局和交互逻辑的掌控能力。迅雷作为一款经典的下载工具&#xff0c;其设置界面以清晰的导航结构和流畅的滚动体…...