您可以检查这是否是浏览器缓存问题?
我有这种情况,我有一个表格,显示这样的数据和下面的链接 发送给你另一个网址。一次只能点击一行。
<table>
<thead>
.
.
</thead>
<tbody>
<tr>
<td><input type=""checkbox" value="1" name="_chk"/></td>
<td>Field1</td>
<td>Field2</td>
</tr>
</tbody>
</table>
<a href="/myApp/url.htm" id="myLink">Change</a>
点击链接后,我使用jquery
将当前点击ID添加到href属性$(document).ready(function(){
$("#myLink").click(function(){
var transID = $("input[name='_chk']:checked").val();
var currHref = $(this).attr("href");
$(this).attr("href", currHref + "?transID=" +transID);
});
});
首次点击时,其ok和事务ID会作为参数附加到新的url字符串,如/myApp/url.htm?transID=1?
问题是,当我单击后退按钮然后单击另一行时,url参数字符串会加倍 像这样/myApp/url.htm?transID=1?transID=2
这是否是浏览器缓存问题,是否有针对此的解决方法?
答案 0 :(得分:2)
是的,这是浏览器缓存的javascript / html状态。如果您从页面之间的表单控件传递值,我建议您使用默认方式,即使用表单和提交按钮。
如果你坚持使用Javascript,那么不要获取属性“href”,硬编码url(不要从href属性获取它)并附加参数并使用Javascript重定向到该页面。
尝试使用它,如果它有效(但这只是对代码的快速修复):
$(document).ready(function(){
$("#myLink").click(function(){
var transID = $("input[name='_chk']:checked").val();
var currHref = "/myApp/url.htm";
$(this).attr("href", currHref + "?transID=" +transID);
});
});
答案 1 :(得分:1)
试试这个......
$(document).ready(function() {
var baseUrl = "/myApp/url.htm";
$("#myLink").click(function(){
var transID = $("input[name='_chk']:checked").val();
$(this).attr("href", baseUrl + "?transID=" +transID);
});
});