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; 

     } 


    });