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 相关文章推荐
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
JavaScript事件处理器中的event参数使用介绍
May 24 Javascript
jquery ajax跨域解决方法(json方式)
Feb 04 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
Jul 14 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
Sort()函数的多种用法
Mar 20 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
Bootstrap免费字体和图标网站(值得收藏)
Mar 16 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 Javascript
vue实现中部导航栏布局功能
Jul 30 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
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
脚本收藏iframe
2006/07/21 Javascript
自适应图片大小的弹出窗口
2006/07/27 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
js变换显示图片的实例
2013/04/16 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
jquery选择器简述
2015/08/31 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
python简单判断序列是否为空的方法
2015/06/30 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
python3实现磁盘空间监控
2018/06/21 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
动物科学专业毕业生的自我评价
2013/11/29 职场文书
硕士生找工作求职信
2014/07/05 职场文书
入伍通知书
2015/04/23 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
承兑汇票延期证明
2015/06/23 职场文书
2015中学学校工作总结
2015/07/20 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python