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随笔(js图片切换效果)
Jul 31 Javascript
js表头排序实现方法
Jan 16 Javascript
深入分析下javascript中的[]()+!
Jul 07 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
JS+CSS实现精美的二级导航效果代码
Sep 17 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
微信小程序的分类页面制作
Jun 27 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
Nov 11 Javascript
vue better scroll 无法滚动的解决方法
Jun 07 Javascript
微信小程序实现横向增长表格的方法
Jul 24 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
php中序列化与反序列化详解
2017/02/13 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
javascript五图轮播切换实用版
2012/08/17 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
Cpy和Python的效率对比
2015/03/20 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python中如何添加自定义模块
2020/06/09 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
初中物理教学反思
2014/01/14 职场文书
怎么写好自荐书
2014/03/02 职场文书
食品安全责任书
2014/04/15 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
思想品德评语大全
2014/12/31 职场文书
联村联户简报
2015/07/21 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android
SQL SERVER触发器详解
2022/02/24 SQL Server