Javascript确认框,单击“取消”不起作用,页面仍加载

时间:2019-12-03 10:25:48

标签: javascript

我有一个项目使用确认框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>

谢谢

4 个答案:

答案 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>