我在IE中遇到错误,而且无论在任何浏览器中,dojo.form.ValidationTextBox的正则表达式部分都会失败。我在这做错了什么?我正在通过Google API加载库。下面是我的代码,如果你可以帮助那将是非常棒的。我想知道这是否是图书馆本身的错误。
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._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$',
required: true,
tooltipPosition: 'below'
}, dojo.byId('newsletter-email'));
});
});
google.load('dojo', '1.5');
答案 0 :(得分:0)
这是答案的人。显然,Dojo开发人员对Internet Explorer的使用并不太热衷。你必须添加setTimeout并在那里创建一个init函数,至少这就是我所做的。