2009-09-21 8 views
2

Le plugin jQuery UI datepicker fonctionne à merveille, cependant, lorsque vous utilisez IE7, le calendrier ne disparaît pas après avoir effectué une sélection comme dans FF, Safari, etc. .jquery ui datepicker ne disparaît pas dans IE7 après sélection

est Voici l'URL http://www.mchenry.edu/insideApp/OIRPprojectrequest/oirpprojectrequestform.aspx

J'espère que ce sera quelque chose de stupide, « cuz IE7 le seul navigateur est que je dois soutenir pour les clients internes.

Thnx!

EDIT: Essayez cette URL, http://www.mchenry.edu/test/oirpprojectrequestform.aspx

Désolé pour ça!

+1

ne peut pas accéder à l'URL - Erreur HTTP 403,6 - Interdit: Adresse IP du client a été rejeté. –

+0

Vous n'êtes pas autorisé à afficher cette page – mkoryak

+1

pouvez-vous copier le code approprié sur http://jsbin.com? –

Répondre

0

détails de l'erreur de page Web

User Agent: Mozilla/4.0 (compatible; MSIE 8.0 , Windows NT 5.1, Trident/4.0; .NET CLR 2.0.50727 ; .NET CLR 3.0.4506.2152; CLR .NET 3.5.30729) Timestamp: lun 21 septembre 2009 18:50:51 UTC

message: 'longueur' est nulle ou non une ligne objet : 139 Char: 17 code: 0 URI: http://www.mchenry.edu/aspnet_client/system_web/1_1_4322/WebUIValidation.js

event.srcElement.Validators est undefined lorsque j'interviens avec IE8. Voulez-vous dire accéder à Validators sur le DispHTMLAnchorElement?

+0

J'utilise aussi le plugin de validation ici. Pensez-vous que cela pourrait être un conflit entre les deux? À moins que ce ne soit une solution facile, il se peut que je doive abandonner l'un ou l'autre. Vous ne savez pas à quel point la validation côté client est importante, car il s'agit d'une application interne et nous avons également des contrôles côté serveur. Hmm ... – Jesse

+0

Clarification: J'utilise le plugin de validation jQuery - notre backend .Net gourou veut utiliser.Net jus de validation sur ce point mais j'ai désactivé sa tricherie. – Jesse

+0

la validation du puits doit être sur l'élément de formulaire; ici, il était exécuté sur une ancre, la source de l'événement. – geowa4

1

Si vous avez quelque chose comme ça dans la configuration de votre datepicker:

onSelect: function() {this.focus(); } onClose: function() {this.focus(); }

Ceci provoque le focus de l'élément, et donc sa validation par le plugin validateur. Malheureusement, dans IE7, cela provoque un bogue lorsque l'événement focus est appelé deux fois et que l'outil datepicker est perturbé et réapparaît.

La solution consiste à ne pas appeler explicitement le validateur sur l'élément, puis de déplacer le focus vers l'élément suivant pour que IE conserve l'ordre de tabulation.

   onSelect: function() { 
        var elementCounter, input, form; 
        input = $(this); 
        form = input.parents('form:first'); 

        // validate the selected date 
        form.validate().element(this); 

        if ($.browser.msie && $.browser.version < 8) { 
         // MSIE 7 triggers focus event twice, forcing the datepicker to re-open 
         // to get around this, we move the focus to the next form element 

         for (var elementCounter = 0; elementCounter < form[0].elements.length; elementCounter++){ 
          if (form[0].elements[elementCounter].name == input.attr('name')) { 
           $(form[0].elements[elementCounter+1]).focus(); 
           break; 
          } 
         } 
        } else { 
         // give focus back to the input element to preserve tabbing 
         $(this).trigger('focus'); 
        } 
       }, 
       onClose: function() { 

        // validate the selected date 
        $(this).parents('form:first').validate().element(this); 

       } 
+0

J'ai une erreur nullref sur 'form [0]' quand j'ai exécuté ce code dans IE9/IE7mode. – jcollum

0

Si vous spécifiez l'attribut tabindex sur vos champs d'entrée, cela pourrait bien fonctionner pour vous:

onClose: function() { 
    $('input[tabindex="' + ($(this).attr('tabindex') + 1) + '"]').focus(); 
} 
Questions connexes