功能:jsp页面有一个a标签链接,
后台有一个拦截器,preHandle会返回true和false两种情况,
返回true则进入controller,跳转到下一页面,
返回false则在原界面弹出提示框。
问题1:返回false时,如何实现原界面不刷新,但弹出结果提示?最好能有代码示例。
问题2:保留a标签及超链接,如何在返回response内容时不跳转?
对a标签绑定一个clikc事件,点击后ajax请求到后台,根据后台返回结果是否进行跳转,跳转使用location.href=xx
$("a").click(function(event){
event.preventDefault();
var href = $(this).attr("href");
$.ajax({
url: "xxx.jsp",
dataType: "text",
success: function (data) {
if (data=="true") {
location.href = href;
} else {
alert("禁止跳转");
};
}
});
});
<html>
<head>
<script type="text/javascript">
function notRun(){
My_function();
return false;
}
</script>
</head>
<body>
<a href="" onclick="return notRun();">点我不会跳转</a>
</body>
</html>
大概的思路是单击a标签的时候,处罚onclick事件,如果该事件返回false ,那么会阻止a标签的默认行为,类似阻止form表单的自动提交。
如果在单击时候还有一些其他的函数要执行,那么可以做如下的修改:
<html>
<head>
<script type="text/javascript">
function My_function(address){
//do anyting you want
//执行完需要的功能再将页面跳转到href中指定的链接
window.location.href=address;
}
//notRun函数用于接收超链接地址并将其传入需要执行的函数My_function之中,再返回false将默认行为清除
function notRun(address){
My_function(address); //向自定义函数传值
return false; //清除默认行为
}
</script>
</head>
<body>
<!--在超链接中添加onclick事件并将超链接地址传入notRun函数-->
<a href="yourLinkAddress" onclick="return notRun(this);">点我不会跳转</a>
</body>
</html>