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 相关文章推荐
Dojo 学习要点
Sep 03 Javascript
基于JQuery的日期联动实现代码
Feb 24 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
JS 获取鼠标左右键的键值方法
Oct 11 Javascript
Angular实现form自动布局
Jan 28 Javascript
javascript中的后退和刷新实现方法
Nov 10 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 Javascript
简单的Vue SSR的示例代码
Jan 12 Javascript
深入浅析vue-cli@3.0 使用及配置说明
May 08 Javascript
详解如何写出一个利于扩展的vue路由配置
May 16 Javascript
Vue+webpack实现懒加载过程解析
Feb 17 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 mvc开发模式的感想
2011/06/28 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
PHP微信支付开发实例
2016/06/22 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
php多进程应用场景实例详解
2019/07/22 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
汽车维修求职信
2014/06/15 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
Redis读写分离搭建的完整步骤
2021/09/14 Redis