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 相关文章推荐
一个加密JavaScript的开源工具PACKER2.0.2
Nov 04 Javascript
Javascript 读后台cookie代码
Sep 15 Javascript
jQuery select控制插件
Aug 17 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
Oct 09 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
jQuery模仿单选按钮选中效果
Jun 24 Javascript
JS和canvas实现俄罗斯方块
Mar 14 Javascript
angular 内存溢出的问题解决
Jul 12 Javascript
JQuery特殊效果和链式调用操作示例
May 13 jQuery
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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
PHP入门速成(2)
2006/10/09 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
js 事件小结 表格区别
2007/08/13 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
学习Django知识点分享
2019/09/11 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
python实例化对象的具体方法
2020/06/17 Python
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
毕业生实习鉴定
2013/12/11 职场文书
应届护士求职信范文
2014/01/26 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
微观世界观后感
2015/06/10 职场文书