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 相关文章推荐
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
JavaScript Split()方法
Dec 18 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
element-ui 上传图片后清空图片显示的实例
Sep 04 Javascript
微信小程序如何获取群聊的openGid以及名称详解
Jul 17 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 Javascript
vue抽出组件并传值实例
Jul 31 Javascript
详解基于element的区间选择组件校验(交易金额)
Jan 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
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
Python简单操作sqlite3的方法示例
2017/03/22 Python
详解django中自定义标签和过滤器
2017/07/03 Python
python opencv之SIFT算法示例
2018/02/24 Python
python使用生成器实现可迭代对象
2018/03/20 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
python实现程序重启和系统重启方式
2020/04/16 Python
详解python算法常用技巧与内置库
2020/10/17 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
建筑人员岗位职责
2013/12/25 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
平安工地建设方案
2014/05/06 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android