使用jQuery获取与序列化form表单数据的Ajax方法
需积分: 50 132 浏览量
更新于2024-09-10
收藏 2KB TXT 举报
"通过jQuery扩展方法实现form表单序列化为JSON对象,并利用ajax进行数据提交"
在JavaScript中,处理HTML表单数据时,通常需要将表单数据转换为JSON格式以便于通过Ajax发送到服务器。这里提供的代码示例展示了一个jQuery插件方法,用于将一个`<form>`元素序列化为JSON对象。该方法名为`serializeJson`,它扩展了jQuery的选择器功能。
首先,我们来看一下`serializeJson`函数的核心部分:
```javascript
$.fn.serializeJson = function() {
var serializeObj = {};
var array = this.serializeArray();
var str = this.serialize();
$(array).each(function() {
if (serializeObj[this.name]) {
if ($.isArray(serializeObj[this.name])) {
serializeObj[this.name].push(this.value);
} else {
serializeObj[this.name] = [serializeObj[this.name], this.value];
}
} else {
serializeObj[this.name] = this.value;
}
});
return serializeObj;
};
```
这个函数首先创建一个空对象`serializeObj`,然后调用`serializeArray`方法将表单数据转换为数组。接着,遍历数组中的每一项,如果键(`name`属性)在`serializeObj`中已存在,且其值是数组,则将当前值添加到数组中;若值不是数组,则将当前值与原值合并成数组。如果键不存在,则直接将当前值存储在`serializeObj`中。
接下来,代码中有一个示例应用此方法,通过`$("#f1").serializeJson()`获取ID为`f1`的表单的JSON数据:
```javascript
var param = $("#f1").serializeJson();
```
之后,使用`$.ajax`进行异步请求,将`param`作为数据发送到服务器:
```javascript
$.ajax({
type: "post",
url: "pcaddress/pcadd.do",
data: param,
success: function(data) {
if (data.ok == "ok") {
// ...
}
}
});
```
在第一个`$.ajax`请求成功后,若服务器返回的数据`data.ok`为"ok",则发起第二个`$.ajax`请求,这次是GET请求,用于查询数据:
```javascript
$.ajax({
type: "GET",
url: "pcaddress/query.do?name=" + name,
dataType: "json",
contentType: "application/x-www-form-urlencoded;charset=utf-8",
success: function(data) {
// ...
}
});
```
这里的`name`变量似乎没有在之前定义,因此可能需要根据实际情况替换或补充。`dataType: "json"`表明期望服务器返回的数据类型为JSON。
总结起来,这段代码主要展示了如何利用jQuery将HTML表单数据转换为JSON对象,并通过Ajax发送到服务器进行处理。这在Web应用程序中非常常见,特别是在需要动态交互、无需刷新页面的情况下。通过这种方式,可以实现用户友好的前端体验,同时保持与服务器的数据同步。
2021-01-19 上传
2020-12-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
qq_33217239
- 粉丝: 2
- 资源: 26
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展