jquery.form.js修改源码ajax支持json格式参数

jQuery表单验证与自动完成插件深度实践指南 表单验证和自动完成是前端交互中最基础的人机协作机制,其核心在于约束输入质量与提升输入效率。从原理看,验证通过声明式规则实现逻辑解耦,自动完成依赖数据管道与事件时机协同;技术价值体现在降低用户操作成本、减少服务端校验压力、增强表单健壮性;典型应用场景包括注册登录、城市搜索、后台管理等需高频文本输入的系统。本文聚焦 validate 表单验证插件 和 autocomplete 自动完成提示插件 的底层机制、中文适配、配置策略与线上排障,覆盖 jQuery 生态下真实项目中的关键决策点与工程细节。 阅读详情

背景

随着RESTFUL格式API的盛行,表单提交jqery的ajax是可以自定义提交的数据格式
但是如果使用jquery.form.js则它默认的格式都是使用的param()方式转成了&的字符串,因此对于严格格式要求application/json的参数则无法支持自定义格式,因此动手修改源码如下;

1.实现param2json方法,默认jquery只有param方法

/**
 * 将param对象转为josn格式
 * @param a obj对象
 * @param traditional  规定是否使用传统的方式浅层进行序列化(参数序列化)。
 * @method param2Json
 * */
$.param2Json = function(a, traditional) {
    var prefix, s = {}, add = function(key, value) {
        //如果value是函数,那么调用函数得到返回值作为真正的value值,如果value是null或者undefined  
        //那么直接value是空字符串,其它情况value不变!  
        // If value is a function, invoke it and return its value  
        value = jQuery.isFunction(value) ? value() : (value == null ? ""
                : value);
        //把key和value值都进行了转码调用encodeURIComponent  
        s[key] = value;
    };
    // Set traditional to true for jQuery <= 1.3.2 behavior.  
    if (traditional === undefined) {
        traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
    }
    // If an array was passed in, assume that it is an array of form elements.  
    if (jQuery.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) {
        // Serialize the form elements  [{name:"avaue"},{age:1}]
        jQuery.each(a, function() {
            //这里面的each指向前面的数组中的内容,也就是是一个对象!  
            add(this.name, this.value);
        });
    } else {
        s=a;
    }
    // Return the resulting serialization  
    //最后把数组s中的所有的查询字符串通过&链接起来,并且把%20也就是空格用+表示!  
    return s;
};

为了方便使用,可以把该代码放入common.js中引入页面使用,或者直接放在jquery.form.js源码的倒数第一个}));的上一行作为它的扩展函数使用

2.修改源码

        var q;//定义q参数这行开始
        //当为json时添加我们自己的转换方式
        //when contentType is  application/json  type  the param will be  json string
        if (options.contentType&&options.contentType.indexOf('json')>0) {
            q = JSON.stringify($.param2Json(a, traditional));
        }else{
            // change param to a=v&b=v  string :param(d,t) is jquery.js methond
            q = $.param(a, traditional);//原有参数转换方式
        }
        //

3.使用方式

            var form = $("form[name=dataForm]"); 
            form.ajaxSubmit({
                url:sysMessageTep.basePath,
                contentType: "application/json; charset=utf-8", //加上 contentType
                dataType: "json",
                type:"put",
                success:function(res){

            }
        }); 
jQuery项目前端数据加密实战:RSA+AES组合方案详解 在Web开发中,数据传输安全是保障用户隐私和系统安全的核心环节。HTTPS协议通过SSL/TLS加密通道提供了基础的传输层安全保障,但在某些特定场景下,如遗留系统加固或对敏感数据的额外保护,应用层加密成为重要的补充手段。其技术原理主要基于密码学中的对称加密与非对称加密算法组合,例如AES算法因其高效性常用于加密数据主体,而RSA算法则因其公私钥机制适合安全交换密钥。这种组合方案的技术价值在于,即使传输通道被窥探,攻击者也无法直接获取明文信息,显著提高了数据泄露的门槛。典型的应用场景包括用户登录认证、支付交易 阅读详情

相关推荐

jQuery设计哲学:前端库与框架的本质分野

jQuery并非过时的代码库,而是一套历经真实业务锤炼的DOM操作契约体系。它以选择器引擎、统一接口和链式调用为核心,解决了浏览器碎片化时代的兼容性、API不一致与开发效率问题。其‘最小惊讶原则’和‘优雅降级’思想深刻影响了现代框架的API设计逻辑,如Vue的v-model语义一致性、React的Hook命名直觉性。在遗留系统维护、轻量级工具开发及跨框架集成场景中,jQuery仍提供零耦合、低侵入、高可控的工程价值。理解jQuery,本质是理解命令式编程心智与浏览器运行时确定性的平衡艺术。

as2886089的博客 403

juqery.form.js在提交表单前修改某个值的方法

可以在beforeSerialize组装发送的表单值之前修改某些表单的值.也可以在beforeSubmit可以做表单提交前的验证,不通过则可以阻止表单的提交

arthur.dy.lee的专栏 2万+

JavaScript执行上下文、原型链与事件循环实战解析

JavaScript不是静态语法集合,而是一套动态运行时系统:执行上下文决定变量与this的生命周期,原型链控制属性继承与方法查找,事件循环调度异步任务的执行时机。理解这三者,才能解释为什么Promise.then比setTimeout(0)先执行、为什么JSON.parse()返回的对象会受Object.prototype污染、为什么DOM操作后立即读取offsetHeight会导致性能骤降。这些机制共同构成JS在浏览器与Node.js中真实运转的底层骨架,是排查线上内存泄漏、间歇性失灵、UI卡顿等高频问

didi9310的博客 529

基于jQuery.form.js将表单序列化为json对象

基于jQuery.form.js将表单序列化为json对象 jQuery.form.js表单插件,可以让您轻松地在HTML表单中使用AJAX。主要的方法,ajaxForm和ajaxSubmit从表单元素,收集信息,以决定如何管理提交过程。更多方法:formToArray,formSerialize,fieldSerialize,fieldValue,clearForm,clearFields,r...

隔壁老瓦的专栏 2475

PHP+MySQL电商系统部署与二次开发实战:从源码到多端API

这次我们来看一个名为“沁心线上面包甜品系统”的完整PHP项目源码。这个项目不仅提供了PHP后端,还配套了数据库,并且标题中提到了Python、Java、微信小程序、安卓APP、Springboot、C#等多种技术栈,看起来像是一个多端适配的电商或管理系统。对于正在寻找毕业设计、课程设计或者想学习全栈开发的同学来说,这类“开箱即用”的完整源码包非常有价值。 项目的核心是一个基于PHP的线上面包甜品商城系统。它最值得关注的点在于其“完整性”——包含了前端页面、后端逻辑、数据库设计以及可能的管理后台。对于初学者,

angzhan5306的博客 378

XSS攻击实战进阶:从窃取Cookie到自动化API调用与数据窃取

跨站脚本攻击(XSS)是一种常见的Web安全漏洞,其核心原理是攻击者能够将恶意脚本注入到受信任的网页中,并在其他用户的浏览器中执行。这种攻击的技术价值在于,它不仅能窃取用户凭证,如Cookie,还能在受害者浏览器上下文中执行任意JavaScript代码,从而模拟用户操作、读取页面敏感数据或调用后端API。在实际应用场景中,XSS常被用于自动化攻击链的构建,例如结合CSRF(跨站请求伪造)思想,实现无需用户交互的敏感操作,如修改密码或发起转账。本文以CTF实战为例,深入探讨了当传统Cookie窃取失效时,如何

weixin_34357928的博客 369

jquery Form表单数据获取 并输出为Json格式

本方式主要通过对JQuery中原有的方法serialize() serializeArray() 进行再封装;使输出的数据为JSON格式 <div class='sxccb-title-inputPhone'> <form id='form'> <input type="number" placeholder="请输入手机号码" name='phone'/>...

helloword_js的博客 3232

jQuery扩展方法实现Form表单与Json互相转换的实例代码

本文通过实例代码给大家介绍了jQuery扩展方法实现Form表单与Json互相转换的相关知识,并给大家介绍了jquery两种扩展方法,需要的朋友可以参考下

jquery ajax content type,JQuery ajax的contentType

原理说明Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。XMLHttpRequest是ajax的核心机制,其原理此文不做阐述。通过对XMLHttpRequest对象的属性和方法的设置,与服务端之间进行基于http请求的消息传送。例如,XMLHttpRequest对象的setRequestHeader...

weixin_39681486的博客 1366

jquery动态改变form属性提交表单

在js中动态改变form的属性,满足不同条件的form提交需求,下面有个不错的示例,大家可以参考下

【PyTorch版本兼容性指南】如何在不同版本中正确使用torch.nn.attention

本文详细解析了PyTorch版本兼容性问题,特别是torch.nn.attention模块在不同版本中的使用差异。针对常见的ModuleNotFoundError错误,提供了三种实用解决方案:升级PyTorch版本、使用自定义实现和源码移植方案,并分享了最佳实践建议,帮助开发者有效避免兼容性问题。

weixin_29084231的博客 471

Ajax异步请求解析,打通前后端,看这一篇就够了

本文详细介绍了Ajax异步请求技术的原理与应用。首先通过用户注册验证用户名和电商商品更新两个实例说明异步请求的实际应用场景。然后深入解析了Ajax的核心XMLHttpResponse对象及其属性和方法,并详细说明了$.ajax()的使用方式和参数配置。文章通过两个完整案例(用户注册验证和用户信息修改)展示了前后端交互的具体实现,包括前端表单设计、JavaScript代码、后端Controller、Service和DAO层的完整代码示例,最后总结了Ajax技术的优缺点。

m0_70325779的博客 2122

Cluster Computing期刊投稿实战:从格式调整到技术检查的全流程解析

本文详细解析了向Cluster Computing期刊投稿的全流程,涵盖心理准备、格式调整、参考文献处理及投稿系统操作。重点介绍了如何利用Springer LaTeX模板,特别是使用picins宏包解决作者简介排版难题,并强调了将BibTeX转换为BBL文件以避免技术审查陷阱,为研究者提供了一份实用的投稿指南。

weixin_28432777的博客 665

ajax批量上传图片

Input表单写法:&lt;input type="file" multiple="multiple" accept="image/jpeg" name="newPhoto" value="" id="newPhoto"&gt;multiple选项用于声明是批量上传     accept声明只接收jpg格式的图片,其他格式的文件在选项卡中显示不出来来自:http://www

nano-dhh 2494

DSP在线升级方案:TMS320C6678使用网络或者串口输出升级数据进行固件升级

下面这段先引用创龙的说明 IBL 运行后, 将从 NOR FLASH 或 NAND FLASH 的 0x00080000 地址引导 ELF/BBLOB 格式 用户程序。 当引导 ELF 格式用户程序时, IBL 会解析用户程序头部信息,并根据头部信息 拷贝不同的代码段至指定 CPU 内存地址,然后将 PC 指针跳转至_c_int00, 再运行用户程 序。当引导 BBLOB 格式用户程序时,由于无头部信息, IBL 会将用户程序拷贝至 0x9E000000 (该内存地址为 IBL 代码指定),并将 PC..

ToneChip的专栏,一个传统的嵌入式码农,裸机编程 1939

Mac本地部署OpenClaw:从零搭建企业级知识库AI助手

大语言模型(LLM)作为当前人工智能的核心技术,通过其强大的自然语言理解和生成能力,正在深刻改变信息交互方式。其原理是基于海量数据训练的深度神经网络,能够根据上下文预测并生成连贯文本。这一技术的核心价值在于,它能够作为智能中枢,理解和执行复杂指令,从而将通用AI能力转化为解决特定业务问题的生产力。在工程实践中,通过AI Agent框架(如OpenClaw)将LLM与外部工具和知识系统连接,是实现其价值的关键。这涉及到**本地部署**与**私有化**部署,以确保数据安全与成本可控。具体应用场景包括企业知识库问

weixin_33402252的博客 376

Django框架整理

Django是一个功能强大的web框架。 前言:框架模式简介 1、MVC和MTV框架模式:分层级进行管理 说到框架模式我们有必要简单的说下设计模式,了解下设计模式这个概念,因为有人对设计模式和框架模式的概念经常混淆 设计模式: 是一套被反复使用,多数人知道并经过分类的代码设计经验总结,是为了解决一些通用性问题的 目的:重用代码并保证代码的可靠性 设计模式分类:单例,抽象工厂 等等 23种模式 一句话总结:解

有用的话关个注,点个赞,收个藏🫶。 1713

Kali Linux实战:5分钟复现永恒之蓝漏洞攻击(附Win7靶机配置指南)

本文提供了一份详细的Kali Linux实战指南,指导读者在5分钟内于隔离的虚拟环境中复现经典的永恒之蓝漏洞攻击。内容涵盖从Windows 7靶机配置、网络设置,到使用Nmap进行服务发现、利用Metasploit框架进行漏洞扫描与利用的全过程,并演示了基础的Meterpreter后渗透操作,旨在帮助网络安全学习者通过亲手实践深入理解SMB协议漏洞的攻防原理。

weixin_29313547的博客 194

Flask请求数据处理:从Vue JSON到表单的全场景解析与校验

HTTP请求数据是Web应用的数据入口,其解析与校验直接决定系统稳定性与安全性。在前后端分离架构中,Flask作为轻量级Python后端,需应对JSON、表单、文件上传、URL参数等多种Content-Type格式,而默认的request对象仅提供原始访问接口,不自动校验或类型转换。理解request.form、request.args、request.json等属性的触发机制与限制条件(如Content-Type严格匹配、字节流单次读取),是避免NoneType错误和500异常的基础。结合pydantic

dy_f的专栏 210

S.BUS协议及编解码,C语言源码

1、简介 SBUS本质是一种串口通信协议,采用100K的波特率,8位数据位,两位停止位,偶效验,即8E2的串口通信。 值得注意的有三点: 1.SBUS采用负逻辑,所以无论接收还是发送都要进行硬件取反(注意,一定要硬件取反),电路如下 这是我在网上看资料时看到的电路,实际上我用的是下面这个电路 2.SBUS有两种模式, a.高速模式:每4ms发送一次 b...

qq_31232793的博客 1万+

Mujoco xml actuator

在MuJoCo中,actuator(执行器) 是用于定义外部力或力矩的机制,这些力或力矩可以作用于关节、肌腱或身体。执行器可以模拟各种类型的驱动器,如电机、液压缸、肌肉等。它们通过定义传输(transmission)和力生成机制(force generation)来实现对模型的控制。

m0_52113469的博客 2892

【课程设计】基于springboot的高校失物招领系统毕业设计源码111731

登录模块:登录模块是进入系统的入口,所有用户必须登录后才能访问系统。登录需要输入用户名和密码,如果多次尝试登录需要输入验证码。登录时需要选择用户的角色,是一般用户还是管理员登录等。登录成功后,会通过数据库获取用户的权限,并跳转至用户的主页面。 失物信息管理模块:失物信息管理分为失物添加、修改和失物查询。失物信息由丢失者进行修改、添加、删除操作;失物查询由普通用户来执行。 失物分类管理模块:失物分类管理分为分类添加、修改和分类查询。分类信息由管理员进行修改、添加、删除操作;分类查询由普通用户来执行。...

高级程序源的博客 4810

基于Simulink的永磁同步电机容错控制(缺相容错)

本文基于Simulink平台,详细介绍了永磁同步电机(PMSM)缺相容错控制的仿真实现方法。针对逆变器开路故障导致的缺相问题,提出"检测-重构-补偿"三阶段控制策略:采用电流阈值法快速检测故障(<5ms),重构αβ坐标系实现两相矢量控制,并通过谐波电流注入抑制转矩脉动(<8%)。仿真结果表明,该方法能有效维持故障后电机运行,转速波动<3%,满足电动汽车等关键应用的可靠性需求。文章包含完整的Simulink建模步骤、MATLAB函数代码及参数设置,为工程实践提供了可复现的

xiaoheshang_123的博客 146

【课程设计】SSM校园网上订餐系统 毕业设计-附源码211510

校园网上订餐系统系统主要功能模块包括公告内容(公告栏、轮播图)用户管理(管理员、普通用户)、内容模块(资讯分类、资讯列表)、模块管理(菜品分类、菜单、订单表),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用SSM框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

Biye_Design的博客 8112

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jQuery工具函数实战指南:类型判断、数据处理与老项目提效

jQuery工具函数是一套面向浏览器兼容性与工程稳定性的静态方法集合,其核心原理是通过标准化封装(如Object.prototype.toString.call)实现精准类型识别与安全数据操作。相比原生API,它在IE6-8等旧环境提供开箱即用的语义化能力,技术价值在于降低胶水代码出错率、统一开发习惯、加速遗留系统维护。典型应用场景包括表单验证中的字符串清洗($.trim)、配置合并($.extend)、嵌套数据遍历($.each)及URL序列化($.param)。本文聚焦$.type、$.isPlainO

rongdmmap的博客 364

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

(课程设计)ssm停车位共享系统app 毕业设计 附源码041534

前台用户可分为未注册用户需求和以注册用户需求。 未注册用户的功能如下: 注册账号:用户填写个人信息,并验证手机号码。 浏览网站资讯:用户可以浏览主页面的资讯来了解小程序的最新网站信息。 已注册用户的功能如下: 登录:根据账号密码进行登录操作。 共享车位信息:用户可以查看共享车位资料信息。 网站资讯:可以查看资讯信息。 3.2.2后台管理员功能 后台管理员可分为普通管理员和超级管理员。 管理员功能如下: 修改密码:管理员可以随时修改自己进入小程序的登录密码,以保证小程序的安全性。 共享订单管理:对共享订单进行

ID3461074420的博客 2310

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: SpringBoot&Swagger构建REST API并生成API文档
下一篇: centos安装git服务器
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值