0

Je ne veux pas que Bootstrap Dropdowns se ferme lorsque la touche ESC est enfoncée.Comment faire pour désactiver la clé d'échappement pour les dropdowns Twitter Bootstrap?

J'ai essayé l'extrait suivant, sans succès:

$(document).on('shown.bs.dropdown', function (e) { 
    $(document).on("keydown", $button, function (e) { 
     var code = e.keyCode || e.which; 
     if (code === 27) { 
      e.preventDefault(); 
     } 
    }); 
}); 

J'ai trouvé un similar Question, qui est sur la désactivation de la clé pour Bootstraps modaux. La solution pour cela semble être data-keyboard="false". Existe-t-il une solution similaire pour Dropdowns?

Edit: Voir JSFiddle

+0

ajouter 'return false;' après empêcher le défaut. Alors ça devrait marcher. –

+0

Merci, mais malheureusement cela ne marche pas non plus. l'événement keydown ne semble même pas être viré. – LocalHorst

+0

pouvez-vous nous montrer votre code HTML? Nous pouvons donc déboguer votre code js et trouver une solution. – tfidelis

Répondre

0

J'utilise ce qui suit:

$('#dropdown_id').on('hide.bs.dropdown', function (e) { 
    if ($(this).hasClass('keepopen')) { 
     $(this).removeClass('keepopen') 
     e.preventDefault(); 
     e.stopPropagation(); 
     return false; 
    } 
}); 

Ajouter classe 'keepopen' lorsque vous attendez menu déroulant pour fermer et que vous voulez éviter. Dans mon cas, il est en train de taper dans l'élément d'entrée à l'intérieur de la liste déroulante:

$('#input_id').on('keydown', function(e){ 
    if (e.which == 27) { 
    $('#dropdown_id').addClass('keepopen'); 
    } 
});