文档.getElementById onclick每次页面加载只工作一次
document.getElementById onclick only working once per page load
我有一个链接:
<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表单中的文本区域框中获取文本,并将其传递到控制器中进行输出。它在我第一次单击链接时工作,但是如果我更改框中的文本并再次单击链接,那么无论我在文本框中更改了什么,它都会在每次单击其他链接时保持相同的值,直到我重新加载页面。链接返回文件下载。
如何保持从文本区获得新的文本而不重新加载页面?
出现这种情况是因为每次按下链接时都使用+=,这将继续将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>
在你的html中:
<a ... onclick="return update(this);">click me</a>
在处理程序中传递this意味着函数中的this引用了DOM元素,所以您不必使用getElementById,所以函数是:
function update(link) {
link.href = /* whatever */;
}
现在,您可以在不知道或使用id的情况下将处理程序放在多个元素上。
相关文章:
- Jquery FadeIn FadeOut 只工作一次
- jQuery滚动功能只工作一次
- iOS鼠标中心绑定只工作一次
- mongoose.js Model.remove在循环中只能工作一次
- Regex拆分-工作一次
- EventListener只能工作一次
- jQuery animate只在单击时工作一次
- data th JS每页只工作一次
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- CSS 类在验证时只工作一次
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 单击仅工作一次
- MVC 分部视图中的 JQuery UI 自动完成功能只能工作一次
- Yelp API、OAuth和Angular与JSONP只工作一次
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- evaluatteJavaScript()只工作一次
- orderBy筛选器只能工作一次
- Jquery事件只工作一次
- Javascript切换的内容函数只能工作一次
- 地图,rails 4.2,javascript,鼠标悬停,只工作一次(或两次).然后在重新加载之后