0

我能够进入它称为防止的功能,并且返回false但该选项卡仍然会切换?任何想法我做错了什么?如何防止选项卡发生变化

<ul class="nav nav-tabs" id="templateActionTab"> 
     <li id="menuTemplateTab" class="active"><a data-toggle="tab" href="#templateTab">Template</a></li> 
     <li id="menuAction"><a data-toggle="tab" href="#actionTab">Action</a></li> 
     <li id="menuScheduler"><a data-toggle="tab" href="#schedulerTab">Scheduler</a></li> 
</ul> 


$(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (event) { 


    var isValidationValid = templateInstance.validateScreen(); 

    if(isValidationValid) 
    { 
    localStorage.setItem('activeTab', $(event.target).attr('href')); 
    $(event.target).attr("href"); 
    return true; 
    } 
    else 
    { 

    event.preventDefault(); 
    return false; 

    } 


}); 
+0

这是否与您的问题:http://stackoverflow.com/questions/1357118/ event-preventdefault-vs-return-false – laser

+0

通常情况下,防止默认是不够的,但你返回false ...这样做两个... – laser

+0

你可以添加event.stopPropagation用于测试目的和/或删除preventDefault() – laser

回答

0

好吧,这是我使用的显示,而不是显示现在它正在真的傻了

$(document).on('show.bs.tab', 'a[data-toggle="tab"]', function (event) { 

     debugger; 
     var isValidationValid = templateInstance.validateScreen(); 

     if(isValidationValid) 
     { 
      localStorage.setItem('activeTab', $(event.target).attr('href')); 
      $(event.target).attr("href"); 
      return true; 
     } 
     else { 

      event.preventDefault(); 
       return false; 

     } 


    });