问题描述:
<script type="text/javascript">
function toPage(url) {
window.open(url);
}
</script>
<form action="Xxx.action?method=list" method="post">
记录1 <input type="button" onclick="toPage(url);" value="操作">
记录2 <input type="button" onclick="toPage(url);" value="操作">
记录3 <input type="button" onclick="toPage(url);" value="操作">
记录4 <input type="button" onclick="toPage(url);" value="操作">
......
记录N <input type="button" onclick="toPage(url);" value="操作">
</form>
上述代码的 操作 的url中含有大量的参数,如:
/exam/review.action?method=getPaper?stuId=4028810a31b834960131b838qn20090204&stuNo=20095338&paperId=402881ed347812a901347813f96d0001&examId=402881ed347812a90134781601fe0023&classNo=QN200902
由于Get 方式传输的数据量非常小,一般限制在 2 KB 左右,而如此之长的数据很有可能会超过其大小,所以想用post方式提交。
-------------------------------------------------------------------------------------------------------------------------------
解决方法:
<script type="text/javascript">
function toPage(url, data) {
// data 格式如下:
// stuId=4028810a31b834960131b838qn20090204&stuNo=20095338&paperId=402881ed347812a901347813f96d0001&examId=402881ed347812a90134781601fe0023&classNo=QN200902
data += '&'; // 用来分割最后一个参数
var target = '_blank';
var tempForm = document.createElement("form");
tempForm.id = "tempForm1";
tempForm.method = "post";
tempForm.action = url;
tempForm.target = target;
var count = 0;
var t = '';
var name = '';
var value = '';
// 将data分割分割成name和value,并根据其创建隐藏域
for (var i=0; i<data.length; i++) {
var tmp = data.charAt(i);
if(tmp != '=' && tmp != '&') {
t += tmp;
} else {
count++;
if(count % 2 != 0) {
name = t;
t = '';
} else {
value = t;
t = '';
var hideInput = document.createElement("input");
hideInput.type = "hidden";
hideInput.name = name;
hideInput.value = value;
tempForm.appendChild(hideInput);
}
}
}
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);
}
</script>
<form action="Xxx.action?method=list" method="post">
记录1 <input type="button" onclick="toPage(url, data);" value="操作">
记录2 <input type="button" onclick="toPage(url, data);" value="操作">
记录3 <input type="button" onclick="toPage(url, data);" value="操作">
记录4 <input type="button" onclick="toPage(url, data);" value="操作">
......
记录N <input type="button" onclick="toPage(url, data);" value="操作">
</form>
-------------------------------------------------------------------------------------------------------------------------------
总结:
1.get与post的区别:
get传输数据量小,执行效率快,不安全
post传输数据量大,安全
2.js分割字符串
3.js document.createElement()方法
-------------------------------------------------------------------------------------------------------------------------------
参考网址:
http://www.cnblogs.com/jack-liang/archive/2011/07/07/2099921.html
http://www.cnblogs.com/caicainiao/archive/2011/07/02/2096275.html
http://www.cnblogs.com/shenba/archive/2009/08/16/1547429.html
分享到:
相关推荐
主要介绍了JS中append字符串包含onclick无效传递参数失败的解决方案,需要的朋友可以参考下
submit是button的一个特例,也是button的一种,它把提交这个动作...使用button按钮实现submit提交,需要在button标签中的使用onclick方法,然后在JavaScript中实现具体,代码如下: <head> [removed] functio
工作中遇到一个问题,两个字符串匹配,要求:每个字符串中最多含有一个*,?可以无限多个 *代表一个任意长度的字符串...用JavaScript实现代码如下: function checkMarchX() { var str1 = document.getElementById('s
本文实例讲述了JavaScript使用indexOf获得子字符串在字符串中位置的方法。分享给大家供大家参考。具体如下: <!DOCTYPE html> <html> <body> Click the button to locate where in the string a ...
本文实例讲述了JavaScript使用replace函数替换字符串的方法。分享给大家供大家参考。具体如下: JavaScript通过replace函数替换字符串,下面的代码将Visit Microsoft中的MicroSoft替换成jb51.net <!DOCTYPE ...
本文实例讲述了JavaScript实现将数组中所有元素连接成一个字符串的方法。分享给大家供大家参考。具体如下: 下面的代码演示了JS中如何通过数组对象的join方法将数组元素连接成一个字符串输出 <!DOCTYPE html> &...
select id=”city” onchange=”[removed]test();”></select>中获取[removed]test();。 小菜想通过事件中的信息,确定下一级的菜单,但是这个貌似很简单的问题,却让小菜纠结了一番。...
博文链接:https://qsfwy.iteye.com/blog/219184
此Demo是我进行改进的,既可以通过OnTouch对图片进行放大缩小移动,也可以对图片进行OnClick点击,OnLongClick点击。不会出现冲突。
this指触发事件的对象,接下来为大家分享下javascript中onclick(this)的用法,感兴趣的朋友可以参考下哈,希望对你有所帮助
JS多选下拉框,实现多选。点击显示下拉。 <script type="text/javascript"> <!-- function $(e){return document.getElementById(e) ;} $('btnSelect').onclick = function () { //§ó§ï?? $('status')....
主要介绍了Spring boot + thymeleaf 后端直接给onclick函数赋值的实现代码,需要的朋友可以参考下
我们可以通过设定按钮的onclick属性来给按钮绑定onclick事件 <!DOCTYPE html> <html> <head> [removed] function displayDate() { document.getElementById(demo)[removed]=Date(); } [removed] <...
form表单提交方式总结一下: 一、利用submit按钮实现提交,当点击submit按钮时,触发onclick事件,由JavaScript里函数判断输入内容是否为空,如果为空,返回false, 不提交,如果不为空,提交到由action指定的地址...
用javascript onclick时显示一个浮动的div用javascript onclick时显示一个浮动的div用javascript onclick时显示一个浮动的div用javascript onclick时显示一个浮动的div
input按钮onclick事件大全input按钮onclick事件大全
首先来看一下从一个数组中选择元素的方法slice(): ...button onclick=myFunction()>Try it</button> [removed] function myFunction() { var fruits = [Banana, Orange, Lemon, Apple, Ma
本文实例讲述了JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法。分享给大家供大家参考,具体如下: 这里演示js如何给页面中所有的img对象加上onclick事件,且实现在新窗体中查看该图片文件的功能: ...
c# 在webFrom上实现tabcontrol功能,可以实现tabcontrol中的所有功能,包括onmouseover事件和onclick事件,程序附有注释容易理解。