Javascript 查询字符串中的重复变量

Javascript 查询字符串中的重复变量,javascript,jquery,html,firefox,Javascript,Jquery,Html,Firefox,我在使用javascript和firefox 10.0.11时遇到了一个奇怪的问题。我已经用IE进行了测试,无法复制该问题 我有一个链接,它指向一个页面,该页面显示了有关某个对象的一些信息。我已经使用javascript向该页面添加了其他功能。如果启用了javascript,则锚链接将被重定向到javascript函数 <a href="/Comment?id=1186281" onclick="return CommentSubmit(1186281)">Comment</a

我在使用javascript和firefox 10.0.11时遇到了一个奇怪的问题。我已经用IE进行了测试,无法复制该问题

我有一个链接,它指向一个页面,该页面显示了有关某个对象的一些信息。我已经使用javascript向该页面添加了其他功能。如果启用了javascript,则锚链接将被重定向到javascript函数

<a href="/Comment?id=1186281" onclick="return CommentSubmit(1186281)">Comment</a>

如果我再次导航到页面(不返回),第一个链接将再次工作,然后开始这种奇怪的行为。单击几个链接后查看页面源代码,我没有看到新的
隐藏的
字段会添加这些附加参数。这是一个已知的问题吗?如何进一步调试并修复此问题?

这不是错误,而是功能:)

您的浏览器正在缓存页面,因此当您返回时,您没有刷新页面,而是返回到原来的页面,即使用隐藏的输入字段

您所需要做的就是删除该字段,然后再追加它

function CommentSubmit(id) {
    $("input[name=id]").remove();
    $("#DynForm").append("<input type='hidden' name='id' value='" + id + "' />");
    $("#DynForm").attr("action", "/Comment/Index");
    $("#DynForm").submit();
    return false;
};
函数注释提交(id){
$(“输入[name=id]”)。删除();
$(“#DynForm”)。追加(“”);
$(“#DynForm”).attr(“action”,“/Comment/Index”);
$(“#DynForm”).submit();
返回false;
};

+1。这确实是正确的,这是一个特点(没有讽刺)。如果有多个字段具有相同的名称,则表示存在一个集合,因此会得到结果url。按计划工作。@FrançoisWahl非常有趣。我曾怀疑浏览器缓存,但我排除了这种可能性,因为每个请求的实际URL都在更改。我没有想到浏览器会缓存搜索页面。由于单击时添加了隐藏的
id
字段,这是否意味着离开页面时会发生页面缓存?为什么当我点击“后退”时,我无法找到附加的隐藏字段?
/Comment?id=1
/Comment?id=1&id=2
/Comment?id=1&id=2&id=3
function CommentSubmit(id) {
    $("input[name=id]").remove();
    $("#DynForm").append("<input type='hidden' name='id' value='" + id + "' />");
    $("#DynForm").attr("action", "/Comment/Index");
    $("#DynForm").submit();
    return false;
};