Estoy usando pestañas de arranque, y uso el shown
evento para detectar el cambio de pestaña, en un escenario, quiero cancelar esto que se muestra, incluso así usé la preventDefault()
función de la siguiente manera:
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href") // activated tab
if(target === '#mise-en-page' || target === '#widgets'){
if($('.page-name-input').length > 0){
var nonEmpty = $('.page-name-input').filter(function(){
return this.value != '';
});
if(nonEmpty.length==0){
e.preventDefault();
console.log('Error !!');
}else{
console.log('OK');
}
}else{
console.log('OK');
}
};
});
En este caso, la preventDefault()
función no funcionó y todavía puedo navegar entre pestañas incluso si tengo el 'Error !!'
mensaje impreso en mi consola.
Como puedo resolver esto ?
Este es un jsfiddle donde preventDefault()
no funciona con el evento mostrado.
Está sucediendo porque el violín no incluye correctamente bootstrap.js
Cuando se incluye el js, e.preventDefault
funciona bien.
http://www.codeply.com/go/FiyO9EGNC0 (css, js y jquery todo incluido con Codeply)
Las pestañas todavía funcionan sin js debido a los atributos de datos, pero los eventos no funcionarán sin bootstrap.js
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras