2010-12-09 4 views
0

Je reçois une erreur dans IE et aussi la partie d'expression régulière de dojo.form.ValidationTextBox échoue, peu importe ce que dans n'importe quel navigateur . Qu'est-ce que je fais mal ici? Je charge la bibliothèque via l'API Google. Voici mon code, si vous pouvez aider ce serait génial. Je me demande si c'est un bug avec la bibliothèque elle-même.'dijit.form.Form' est null ou un objet dans IE et regex ne fonctionne pas

if (typeof(djConfig)=='undefined') { 
    djConfig = { 
     isDebug: false, 
     parseOnLoad: true 
    }; 
} 

if (document.location.protocol=='https:') { 
    djConfig.modulePaths={ 
     "dojo":"https://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dojo", 
     "dijit":"https://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dijit", 
     "dojox":"https://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dojox" 
    }; 
} 

google.setOnLoadCallback(function() { 
    dojo.require("dijit.form.Form"); 
    dojo.require("dijit.form.ValidationTextBox"); 
    dojo.require("dojox.validate.regexp"); 

    dojo.addOnLoad(function() { 
     var newsletterForm = new dijit.form.Form({ 
      action: '/newsletter.cfm', 
      method: 'post', 
      target: '_blank' 
     }, dojo.byId('newsletter-form')); 

     var newsletterEmail = new dijit.form.ValidationTextBox({ 
      invalidMessage: 'Please double-check your email address', 
      promptMessage: 'Enter your email address', 
      regExp: '^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$', 
      required: true, 
      tooltipPosition: 'below' 
     }, dojo.byId('newsletter-email')); 
    }); 
}); 

google.load('dojo', '1.5'); 

Répondre

0

Voici la réponse les gars. Apparemment, les développeurs de Dojo ne sont pas très intéressés par l'utilisation d'Internet Explorer. Vous devez ajouter setTimeout et créer une fonction init à l'intérieur, du moins c'est ce que j'ai fait.

+0

Dojo a son propre chargeur qui fonctionne bien sur IE. La combinaison avec le chargeur Google n'est peut-être pas testée/prise en charge. Où avez-vous mis le setTimeout? – peller

Questions connexes