Jquery通过Ajax方式来提交Form表单的具体实现


Posted in Javascript onNovember 07, 2013

今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是:

保存数据到服务器,成功时显示信息。
jQuery 代码:

$.ajax({ 
type: "POST", 
url: "some.php", 
data: "name=John&location=Boston", 
success: function(msg){ 
alert( "Data Saved: " + msg ); 
} 
});

后来我就想了一下,我要提交form表单有没有办法呢?但是我不可能每个fom的input都写一次var demo=$("#divname").val();的.
后来,今天我看到一个方法,就是.map,就做出一下想法了,可以借鉴哟;
html代码如下,下面我要提交Form 的id为dlg_form的所有input数据,
<form id="dlg_form" method="post"> 
<div class="fitem"> 
<label> 房间:</label> 
<input name="RoomName" style="padding: 2px; width: 135px; border: 1px solid #A4BED4;" required /> 
</div> 
<div class="fitem"> 
<label> 建筑:</label> 
<input name="RoomName" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 部门:</label> 
<input name="RoomName" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<fieldset> 
<legend> 
<label> 
<input type="checkbox" id="ktkzq" name="ktkzq" value="ktkzq"/> 
空调控制器</label> 
</legend> 
<div class="fitem"> 
<label> 端口:</label> 
<input name="kt_dk" id="kt_dk" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 地址:</label> 
<input name="kt_dz" id="kt_dz" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 工作方式:</label> 
<input name="kt_gzfs" id="kt_gzfs" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 是否启用:</label> 
<input name="kt_sfqy" id="kt_sfqy" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
</fieldset> 
<fieldset> 
<legend> 
<label> 
<input type="checkbox" id="dgkzq" name="dgkzq" value="dgkzq"/> 
灯光控制器</label> 
</legend> 
<div class="fitem"> 
<label> 端口:</label> 
<input name="dg_dk" id="dg_dk" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 地址:</label> 
<input name="dg_dz" id="dg_dz" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 工作方式:</label> 
<input name="dg_gzfs" id="dg_gzfs" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
<div class="fitem"> 
<label> 是否启用:</label> 
<input name="dg_sfqy" id="dg_sfqy" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
</fieldset> 
<div class="fitem"> 
<label style=" width:100px;"> 
<input type="checkbox" id="zongbiao" name="zongbiao" value="zongbiao"/> 
安装了总表:</label> 
</div> 
<div class="fitem"> 
<label> 总表电能节点:</label> 
<input name="zbdnjd" id="zbdnjd" disabled="disabled" class="easyui-combobox" style="padding: 2px; width: 141px; " required /> 
</div> 
</form>

是不是很多,如果要你每个input都写的话,是不是要吐血?
看看我的方法,首先我们把所有的input的name和value都取下来,
js代码如下:
var str_data=$("#dlg_form input").map(function(){ 
return ($(this).attr("name")+'='+$(this).val()); 
}).get().join("&") ; 
alert(data);

ps:你alert一下,你会发现,这里面的架构就是divname=xxx&divname2=xxxx等等,

然后在回头看看ajax提交的:

$.ajax({ 
type: "POST", 
url: "some.php", 
data: "name=John&location=Boston", 
success: function(msg){ 
alert( "Data Saved: " + msg ); 
} 
});

有没有发现,只要我们把我们上面获取到的,放到data里面就可以了?

完整的代码,修改后应该是

$.ajax({ var str_data=$("#dlg_form input").map(function(){ 
return ($(this).attr("name")+'='+$(this).val()); 
}).get().join("&") ; 
type: "POST", 
url: "some.php", 
data: str_data, 
success: function(msg){ 
alert( "Data Saved: " + msg ); 
} 
});

ok,就这么简单,如果适用的话,可以拿去用哟...

呵呵.

如果有问题,也欢迎提出来.

Javascript 相关文章推荐
js利用div背景,做一个竖线的效果。
Nov 22 Javascript
一个简单的JavaScript数据缓存系统实现代码
Oct 24 Javascript
jquery分页插件jpaginate在IE中不兼容问题
Apr 22 Javascript
jQuery数据类型小结(14个)
Jan 08 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
探究JavaScript中的五种事件处理程序方式
Dec 07 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
Jul 19 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
express + jwt + postMan验证实现持久化登录
Jun 05 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 #Javascript
js操作label给label赋值及取label的值示例
Nov 07 #Javascript
js实现幻灯片播放图片示例代码
Nov 07 #Javascript
JS实现定时页面弹出类似QQ新闻的提示框
Nov 07 #Javascript
得到form下的所有的input的js代码
Nov 07 #Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
Nov 07 #Javascript
简单的Jquery全选功能
Nov 07 #Javascript
You might like
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
详解php中 === 的使用
2016/10/24 PHP
脚本收藏iframe
2006/07/21 Javascript
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
2014元旦晚会策划方案
2014/02/19 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
教师节活动主持词
2014/04/02 职场文书
中层干部培训方案
2014/06/16 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
小学班主任自我评价
2015/03/11 职场文书
2015年教师党员承诺书
2015/04/27 职场文书