document.getElementById onclick 每次页面加载仅工作一次
我有一个链接:
<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 表单中的文本区域框中获取文本,以传递到控制器中进行输出。它在我第一次单击链接时起作用,但是如果我更改框中的文本并再次单击链接,则从第一次单击每个其他链接单击开始,它都会保持相同的值,直到我重新加载页面,无论我在中更改什么文本框。该链接返回文件下载。
如何在不重新加载页面的情况下不断从文本区域获取新文本?
I have a link:
<a id="lnk" href="${pageContext.request.contextPath}/path/path2.pdf?var0=sometext&var1=moretext" onclick="update();"target="_blank">click to export</a>
and a JavaScript function in a separate file:
function update()
{
var link = document.getElementById("lnk");
link.href += "&var2=" + document.getElementById("textareaIdName").value;
return;
}
This is supposed to grab the text from a textarea box in a jsp form to pass into controller for output. It works the first time I click the link, but then if I change the text in the box and click link again it holds the same value from the first click on every other link click until I reload the page regardless of what I change in the text box. The link returns a file download.
How can I keep getting new text from textarea without reloading the page?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
发生这种情况是因为每次按下链接时您都使用 += ,这将继续将 var2 连接到超链接的末尾,为了使这项工作有效,您应该使用:
This occurs because you are using += each time the link is pressed which will keep concatinating the var2 onto the end of the hyperlink, to make this work you should use:
在您的 html 中:
在处理程序中传递 this 意味着函数中的 this 引用 DOM 元素,因此您不必使用 getElementById ,所以功能是:
现在您可以将处理程序放在多个元素上,而无需知道或使用 id。
In your html:
Passing this in the handler means that this in the function references the DOM element, so you don't have to use getElementById, so the function is:
Now you can put the handler on multiple elements without knowing or using the id.