2010-07-14 9 views
1

J'ai un problème avec la touche d'entrée dans IE6 avec la boîte de confirmation jQuery UI Dialog qui a juste un bouton "Ok" sur elle.Comment désactiver "Entrée clé" lors de l'utilisation jQueryUI Dialog Confirmation

$("#myBox").dialog({ 
      autoOpen: false, 
      closeOnEscape: false, 
      resizable: false, 
      modal: true, 
      draggable: false, 
      position: ["center", 100], 
      buttons: { 
       'Ok': function() { 
         $(this).dialog("close"); 
         closeReq(); 
        } 
     } 
    }); 

Fondamentalement, je ne veux que la boîte de dialogue ainsi que toute fonction supplémentaire appelle contre la « Ok » pour fermer/fonction d'incendie, uniquement lorsque l'utilisateur clique sur le bouton « Ok ».

Pour l'instant, je permets à l'utilisateur d'appuyer sur la touche "Entrée" pour déclencher la récupération de certaines informations et ensuite, en fonction de la validation de ces données, je produis une boîte de dialogue modale jQuery UI l'utilisateur appuie sur "Enter Key" depuis le début.

Comment puis-je empêcher que cela se produise, c'est-à-dire désactiver la touche "Entrée" dans IE6 pour cette boîte de dialogue jQueryUI Dialog Message?

Merci.

Répondre

1

En ce moment, je permettre à l'utilisateur d'appuyer sur la touche « Entrée » pour déclencher la récupération de quelques informations, puis basé sur une validation de ces données

whereever vous faites cela, appelez

.preventDefault(); 
.stopPropagation(); 

dans votre gestionnaire d'événements. Renvoyer false est comme un raccourci pour cela.

+0

désolé jAndy, n'a pas fonctionné pour moi. En appuyant toujours sur enter, vous parcourez les mouvements et supprime également la boîte de dialogue sans permettre à l'utilisateur d'acquitter le bouton "OK". Y a-t-il quelque chose dans les boutons qui peut être fait? – tonyf

+0

merci pour votre aide et désolé pour le retard à revenir mais j'ai réussi à résoudre ce problème en utilisant la logique suivante: if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } – tonyf

0

Réussi à ce bas qui suivre résolu mon problème, pls se rapportent à: see solution

On dirait preventDefault est pas reconnu par IE6

Merci à @jAndy pour votre aide.

1

Bon vous avez résolu votre problème. Voici ce qui a fonctionné pour moi:

// Kills an event's propagation and default action. Scott Andrew 
function knackerEvent(eventObject) { 
    if (eventObject && eventObject.stopPropagation) { 
     eventObject.stopPropagation(); 
    } 
    if (window.event && window.event.cancelBubble) { 
     window.event.cancelBubble = true; 
    } 

    if (eventObject && eventObject.preventDefault) { 
     eventObject.preventDefault(); 
    } 
    if (window.event) { 
     window.event.returnValue = false; 
    } 
} 
Questions connexes