前言:在提交一个表单时,使用Ajax向后台发送请求,需要dict类型的数据data;我们如何获取模态对话框里面的数据?
方式:https://blog.csdn.net/ak739105231/article/details/103528026
一、其中有一种方式会使用serialize()
首先,serialize()方式获取到的模态对话框中的全部输入值,是可以不经过数据类型转换直接在ajax中使用的,可成功传入后台;
但是仅仅使用这种方式,如果想用serialize()获取到的页面的数据,通过js更新到列表的最新一行,获取其每一项值是比较困难的;
注释:
1.下面的截图中的$(“#stu_msg”)是通过form表单的id属性,找到form表单;
2.方法createRaw();是ajax回调函数,在关闭新增对话框后,在列表页新增一行数据的方法;这里没有截图
3.因为新增一行createRaw(),需要获取每个字段的值,获取的类型是json对象,或者dict类型的,才可通过“对象.属性”的方式很好获取每列的值
二、最好的方式:serializeArray()+map()
#获取模态对话框的全部输入数据
var Data0 =$("#stu_msg").serializeArray();
#定义一个dict类型变量
var newstuData={};
#使用map将.serializeArray()返回值获取其字段,加入dict变量中;
$.map(Data0,function(n,i){
newstuData[n["name"]]=n['value'];
});
#注意:上面的map()方法里面的参数i,看上去没有用,实则必要;