【问题标题】:Multiple On-click Events HTML Button多个点击事件 HTML 按钮
【发布时间】:2020-10-19 21:21:03
【问题描述】:
我只是想创建一个包含两个 onclick 事件的 HTML 按钮,但问题是第二个没有正确响应。这是下面的按钮标签:
<input class="btn btn-default btn-responsive" type="button" onclick="return confirm('Cancel Changes?'); location.href='${cancelLink}'" value="Cancel Changes"/>
由于 location.href 中的表达式语言,我一定做错了什么,但我不确定它是什么,因为我非常不熟悉在这些情况下使用表达式语言。我确实知道这个链接可以工作,因为如果我在带有href=${cancelLink} 的“a”标签中使用它,它就可以工作。任何帮助将不胜感激。
【问题讨论】:
标签:
javascript
html
dom-events
buttonclick
spring-expression-language
【解决方案1】:
除非您多次单击按钮,否则不会有多个 onclick 事件。
您有一个单击事件侦听器,其中包含两个语句。
这是您正在使用的功能:
function () {
return confirm('Cancel Changes?');
location.href='${cancelLink}'
}
第一行包含return 语句,因此您永远不会到达第二行。
如果你想有条件地做某事,那么使用 if 语句,而不是 return 语句:
function () {
if (confirm('Cancel Changes?')) {
location.href='${cancelLink}'
}
}
但是,您在这里所做的只是使用 JavaScript 来模拟常规链接:因此您应该使用常规链接:
<a class="btn btn-default btn-responsive"
onclick="return !confirm('Cancel Changes?')"
href="${cancelLink}">
Cancel Changes
</a>
【解决方案2】:
<body>
<input class="btn btn-default btn-responsive" type="button" onclick="Click()" value="Cancel Changes"/>
<script>
function Click(){ confirm("cancel changes"); }
</script>
</body>
函数应该单独写在JavaScript标签中