567 votes

Interdire twitter bootstrap fenêtre modale de la fermeture

Je suis entrain de créer une fenêtre modale à l'aide de twitter bootstrap. Le comportement par défaut si vous cliquez à l'extérieur de la modale de la zone, le modal se ferme automatiquement. Je voudrais désactiver -- c'est à dire de ne pas fermer la fenêtre modale lorsque vous cliquez en dehors de la modale.

Quelqu'un peut-il partager jQuery code pour faire cela?

706voto

Nobita Points 9046

Je crois que vous voulez définir le contexte de la valeur de statique. Si vous voulez éviter la fermeture de la fenêtre lors de l'utilisation de la touche esc, vous devez définir une autre valeur.

Exemple:

<a data-controls-modal="your_div_id" 
   data-backdrop="static" 
   data-keyboard="false" 
   href="#">

Je n'ai pas essayé, mais il semble que cela devrait faire l'affaire. Aussi, la prochaine fois, essayez d'ajouter un peu de code à votre question >)

312voto

Nirmal Points 2955

Il suffit de régler l' backdrop de la propriété d' 'static'.

$('#myModal').modal({
  backdrop: 'static',
  keyboard: true
})

Vous pouvez également définir l' keyboard de la propriété d' false parce que cela empêche la modale d'être fermé en appuyant sur la touche Echap touche sur le clavier.

$('#myModal').modal({
  backdrop: 'static',
  keyboard: false
})

myModal est l'ID de la div qui contient votre modal de contenu.

218voto

Varun Chatterji Points 2114

Vous pouvez également inclure ces attributs dans le modèle de définition de lui-même:

<div class="modal hide fade" data-keyboard="false" data-backdrop="static">

46voto

AymKdn Points 868

si vous avez déjà initialisé la fenêtre modale, alors vous pouvez réinitialiser les options avec $('#myModal').removeData("modal").modal({backdrop: 'static', keyboard: false}) pour s'assurer qu'il appliquera les nouvelles options.

22voto

Chris Barr Points 3568

Un peu comme @AymKdn réponse, mais cela vous permettra de modifier les options, sans ré-initialisation du modal.

$('#myModal').data('modal').options.keyboard = false;

Si vous avez besoin de faire de multiples options, JavaScript with est très pratique ici!

with ($('#myModal').data("modal").options) {
    backdrop = 'static';
    keyboard = false;
}

Si le modal est déjà ouvert, ces options ne prendront effet la prochaine fois que le modal est ouvert. Je ne peux pas trouver un moyen de les changer à la volée de modifier temporairement une option, alors que, disons, le modal est le chargement ou la sauvegarde de données ou de quelque chose.

Quelqu'un sait comment cela pourrait être fait?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X