我有一个项目使用确认框javascript,如果用户单击“取消”,然后什么也不做,但页面仍加载,我搜索有关确认框的所有内容,但找不到所需的内容,请为此提供帮助,这里有一些代码
javascript
function OnClickNextPage(){
var result = confirm("Are you sure ?");
if (!result) {
return false;
}
}
html
<a href="http://localhost" data-ajax="?link1=saved-posts" onclick="return OnClickNextPage();">Test</a>
谢谢
答案 0 :(得分:1)
尝试
function OnClickNextPage(e){
e.preventDefault();
var result = confirm("Are you sure ?");
if (!result) {
return false;
}
}
编辑-
抱歉,我的问题是您在href中调用了页面加载事件,该事件最终会在DOM的优先级上触发
<a href="http://localhost" data-ajax="?link1=saved-posts" onclick="OnClickNextPage();">Test</a>
尝试这样
<a href="#" onclick="OnClickNextPage();">Test</a>
function OnClickNextPage(e){
e.preventDefault();
var result = confirm("Are you sure ?");
if (!result) {
return false;
} else {
window.location.href = [[Your URL Here]]
}
}
答案 1 :(得分:1)
您必须将click事件“终止”到a标签,为此,您必须将事件对象传递给OnClickNextPage
函数,然后在事件上调用.preventDefault()
。 return false;
操作不会影响onclick
事件。
HTML
<a href="http://localhost" data-ajax="?link1=saved-posts" onclick="OnClickNextPage(event);">Test</a>
JavaScript
function OnClickNextPage(event) {
var result = confirm("Are you sure ?");
if (!result) {
event.preventDefault(); // prevent event when user cancel
}
// go to page in a tag's href when user choose 'OK'
}
答案 2 :(得分:0)
您必须使用preventDefault()函数阻止事件的默认行为,而不是返回false。这是代码
<a href="http://localhost" data-ajax="?link1=saved-posts" onclick="OnClickNextPage();">Test</a>
function OnClickNextPage(event){
var result = confirm("Are you sure ?");
if (!result) {
event.preventDefault();
}
}
答案 3 :(得分:0)
JS
function OnClickNextPage(e){
console.log('after prevent')
var result = confirm("Are you sure ?");
if (!result) {
e.preventDefault();
return false;
}
}
HTML
<a href="http://localhost" data-ajax="?link1=saved-posts" onclick="return OnClickNextPage(event);">Test</a>