今天遇到这么一个需求,携带一个编号一个名字跳转到另一个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. 七、Shell printf 命令

    Shell printf 命令 上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf. printf 命令模仿 C 程序库(library) ...

  2. Freemaker基于word模板动态导出汇总整理

    Freemaker基于word模板动态导出汇总整理 一.使用的jar包: 二.Word模板动态导出的基本思路: 1.首先通过自己在word中创建好需要导出的word文本+表格的模板,模板中需要填写内容 ...

  3. 用纯CSS实现加载中动画效果

    HTML <div class="pswp__preloader__icn"> <div class="pswp__preloader__cut&quo ...

  4. python常见概念

    1. 什么是鸭子类型? 不要检查它是不是鸭子:检查它的叫声像不像鸭子,走起路来像不像鸭子.如果走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子.鸭子类型是编程语言中动态类型语言中的一种设计风格,一个对象 ...

  5. 893E - Counting Arrays

    E. Counting Arrays time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  6. Selenium与PhantomJS【转】

    爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... Day 1 小莫想要某站上所有的电影,写了标准的爬虫(基于HttpCli ...

  7. 创建数据收集器集(DSC)

    TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 按类别 ...

  8. leetcode 【 Insertion Sort List 】 python 实现

    题目: Sort a linked list using insertion sort. 代码:oj测试通过 Runtime: 860 ms # Definition for singly-linke ...

  9. 【Climbing Stairs】cpp

    题目: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either cl ...

  10. python 令人抓狂的编码问题

    #运行以下程序: #! /usr/bin/env python#coding=utf-8 file = open( 'all_hanzi.txt','wb' ) listhz = []n=0for c ...