我有一个链接:
<a id="lnk" href="${pageContext.request.contextPath}/path/path2.pdf?var0=sometext&var1=moretext" onclick="update();"target="_blank">click to export</a>和一个单独文件中的JavaScript函数:
function update()
{
var link = document.getElementById("lnk");
link.href += "&var2=" + document.getElementById("textareaIdName").value;
return;
}这是为了从jsp表单中的文本区域框中获取文本,并将其传递到控制器中进行输出。它在我第一次单击链接时起作用,但是如果我更改框中的文本并再次单击链接,它会从第一次单击其他链接时保持相同的值,直到我重新加载页面,而不管我在文本框中做了什么更改。该链接返回文件下载。
如何在不重新加载页面的情况下,不断地从文本区域获取新文本?
发布于 2011-09-28 12:12:58
出现这种情况的原因是,每次按下链接时都会使用+=,该链接会将var2连接到超链接的末尾,因此您应该使用以下命令:
var linkName = "${pageContext.request.contextPath}/path/path2.pdf?var0=sometext&var1=moretext";
function update(obj) {
obj.href = linkName + "&var2=" + document.getElementById("textareaIdName").value;
return;
}
<a id="lnk" href="" onclick="update(this);" target="_blank">click to export</a>发布于 2011-09-28 13:08:17
在您的html中:
<a ... onclick="return update(this);">click me</a>在处理程序中传递它意味着函数中的这个引用了DOM元素,所以您不必使用getElementById,所以函数是:
function update(link) {
link.href = /* whatever */;
}现在,您可以将处理程序放在多个元素上,而无需知道或使用id。
https://stackoverflow.com/questions/7578194
复制相似问题