我在我的javascript中使用session属性,然后在if-else中使用它。 假设用户使用一些锚标签点击锚标记,该脚本就会运行。
<a id="someId" href="/someurl" onClick="checkSession(this.id)">Link</a>
<a id="someOtherId" href="/someurl" onClick="checkSession(this.id)">Link2</a>
在体内
<script type="text/javascript">
function checkSomething(clickedId){
event.preventDefault();
var value= <%=(int) session.getAttribute("key")%>;
if(value != -1){
window.location = $('#'+clickedId).attr('href');
}else {
alert("Please Select a value first then click on the link.");
$("#someInput").focus();
}
};
</script>
脚本在chrome上完美运行但在mozilla和IE上失败。 在Mozilla上我可以看到锚标签已经与该javascript绑定但是它没有运行。
答案 0 :(得分:1)
传递事件而不是ID。此外,您不需要jQuery来获取元素的href
。只需使用vanilla JavaScript:
<a id="someId" href="/someurl" onClick="checkSession(event)">Link</a>
<a id="someOtherId" href="/someurl" onClick="checkSession(event)">Link2</a>
<script>
function checkSession(event) {
event.preventDefault();
var clickedId = event.target.id;
var href = event.target.href;
// etc
}
</script>
答案 1 :(得分:0)
或者你可以:
<a id="someId" href="javascript:checkSession('/someurl')">Link</a>
<a id="someOtherId" href="javascript:checkSession('/someOtherurl')">Link2</a>
<script>
function checkSession(url) {
var value= <%=(int) session.getAttribute("key")%>;
if(value != -1){
window.location = url;
} else {
alert("Please Select a value first then click on the link.");
$("#someInput").focus();
}
}
</script>