今天遇到这么一个需求,携带一个编号一个名字跳转到另一个JSP页面,直接页面跳转(get携带数据)的话不太安全,于是想到到后台转发一下。

  • 第一种:直接以表单提交方式的进行

  JS代码:

    var form = $("<form action='"+contextPath+"/trainacontentType_forwardToAddTraincontent.action"+"' method='post'></form>")
form.append("<input type='hidden' name='typeId' value='"+$("#trainContentTypeId").val()+"'>");
$(document.body).append(form);
form.submit();

  注意上面红色部分的代码,chrome56版本以后修复form提交的bug,form = $('<form></form>')创建好后,要$(document.body).append(form);然后form.submit();

  否则会报错: Form submission canceled because the form is not connected

  • 第二种:动态创建表单,ajax提交表单

  另一种ajax提交的方式不需要上面的    $(document.body).append(form);例如:

    //2.如果全部填上就动态封装一个表单,然后提交数据(动态拼装一个表单然后提交)
var form = $("<form method='post' action='XXX'></form>")
var tr = $("#course2AddTbody").children("tr");//获取到tbody
var trainningschemeid = getTrainSchemeId();//培养方案编号
var typenum = $("#trainCourseTypeNum").val();//类别num
alert(trainningschemeid+"----"+typenum);
for(var i=0,length_1 = tr.length;i<length_1;i++){
var courseid = tr.children("td:eq(0)").find("input").val();//课程编号
var semester = tr.children("td:eq(3)").find("input").val();//学期
form.append("<input type='hidden' name='trainCourse["+i+"].trainningschemeid' value='"+trainningschemeid+"'/>");//培养方案编号
form.append("<input type='hidden' name='trainCourse["+i+"].typenum' value='"+typenum+"'/>");//培养方案编号
form.append("<input type='hidden' name='trainCourse["+i+"].courseid' value='"+courseid+"'/>");//培养方案编号
form.append("<input type='hidden' name='trainCourse["+i+"].typenum' value='"+typenum+"'/>");//培养方案编号
}
//提交
$.post("xx",form.serialize(),function () { },'json');

  

后台代码:(页面中可以用OGNL取Traincontenttype 的属性)

        private Traincontenttype traincontenttype;
...get,set.....
/**
* 转发到增加培训内容界面
* @return
*/
public String forwardToAddTraincontent() {
if(ValidateCheck.isNotNull(typeId)){
try {
traincontenttype = traincontenttypeService.getTraincontenttypeById(typeId);
} catch (SQLException e) {
logger.error("查询培训内容类别出错", e);
}
}
return "toAdd";
}

struts2配置:(红色部分是页面跳转的配置)

        <!-- S   QLQ 增加的培训类别管理 -->
<global-results>
<result name="success" type="json">
<param name="root">response</param>
</result>
</global-results>
<action name="trainacontentType_*" method="{1}" class="traincontentTypeAction">
<result name="toAdd">/view/train/addTrainFile.jsp</result>
</action>
<!-- E QLQ 增加的培训类别管理 -->

参考:http://www.cnblogs.com/hujunzheng/p/5069798.html

jQuery动态创建form表单并提交到后台(携带一定的数据进行页面跳转)的更多相关文章

  1. js动态创建Form表单并提交

    javascript动态创建Form表单和表单项,然后提交表单请求,最后删除表单,代码片段如下(Firefox测试通过): var dlform = document.createElement('f ...

  2. jquery动态创建form表单

    function exportExcel() { var merchantName = $('#merchantName').val(); var merchantNo = $('#merchantN ...

  3. jQuery Ajax 确定 form 表单 submit 提交成功

    使用 jQuery 提交表单,可以使用 同步方式(async: false). a.html 是 html 文件,a.php 是服务端文件,把 a.html 中表单的数据提交到 a.php 中,在提交 ...

  4. asp.net中通过form表单submit提交到后台的实例

    前台<body>中的代码: <body> <div id="top"> </div> <form id="login ...

  5. JS将文件以form表单一样提交到后台

    这是很简单.. HTML <div> <input type="file" id="myfile"> <input type=&q ...

  6. JS将文件像form表单一样提交到后台

    这是很简单.. HTML <div> <input type="file" id="myfile"> <input type=&q ...

  7. vue+element创建动态的form表单.以及动态生成表格的行和列

    动态创建form表单,网上有插件 (form-create) 不过我不知道它怎么用,没有使用成功,如果你使用成功了,欢迎下方留言. 最后我使用了笨方法,针对各个表单写好通用的组件,然后根据type用v ...

  8. Jquery来对form表单提交(mvc方案)

    来自:http://www.cnblogs.com/lmfeng/archive/2011/06/18/2084325.html 我先说明一下,这是asp.net mvc 里面的用法, Jquery来 ...

  9. form表单 无法提交js动态添加的表单元素问题。。

    第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url   ...

随机推荐

  1. Linux入门-第九周

    1.判断UID是否大于等于500,如果为真就显示为普通用户,如果为假就显示为系统或管理用户 AWK简介:awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报 ...

  2. tcl之变量-数组array

  3. ZendFramework-2.4 源代码 - 关于MVC - Model层类图

  4. 怎么选取训练神经网络时的Batch size?

    怎么选取训练神经网络时的Batch size? - 知乎 https://www.zhihu.com/question/61607442 深度学习中的batch的大小对学习效果有何影响? - 知乎 h ...

  5. linux下安装VMware出错:Gtk-Message: Failed to load module "canberra-gtk-module"解决方法

    最近又有兴趣在linux下搭建个虚拟机,于是去找了个VMWorkstation,安装的过程中报了两个错误 Gtk-Message: Failed to load module "pk-gtk ...

  6. 739. Daily Temperatures

    https://leetcode.com/problems/daily-temperatures/description/ class Solution { public: vector<int ...

  7. Linux文件类型 扩展名的作用

    链接类型文件 查找显示管道文件 普通文件类型 file 查看文件的类型 data文件类型 创建块字和符设备 mknod 1,.tar .tar.gz .tgz .zip tar.bz 表示压缩文件,创 ...

  8. Redis实现之服务器

    命令请求的执行过程 一个命令请求从发送到获得回复的过程中,客户端和服务器需要完成一系列操作.举个栗子,如果我们使用客户端执行以下命令: 127.0.0.1:6379> SET KEY VALUE ...

  9. ZeroClipboard_copy

    //<script src="js/ZeroClipboard.js" type="text/javascript"></script> ...

  10. java作业8

    interface Pet{ public String getName(); public String getColor(); public int getAge(); } class Cat i ...