我遇到一个问题,我有一个连接到dojo下拉窗口小部件的手机输入字段。您可以选择美国手机类型或国际手机类型。如果选择“我们”类型,则只能在输入字段中输入10个字符。如果选择国际类型,则可以在输入字段中输入15个字符。这在Firefox和Internet Explorer 8中正常工作,但在Internet Explorer 7中无法正常工作。
这是html代码:
<input id="tPhone" type="text" name="tPhone" class="isCompleted phone-number" tabindex="0" maxlength="10" rel="i13"/>
我认为如果动态更改或销毁dom节点并根据用户选择替换它,我可以在dojo中正常工作。如何使用dojo执行此操作?这是我现在的道场代码:
this.phoneTypeDrop = new widget.StyledDropdown(dojo.byId("sPhoneType"),function(){
if(_this.phoneTypeDrop.getSelectedIndex() == 0){
Phone.pnField.regEx = Validation.regExps.phone;
dojo.attr(dojo.byId(Phone.pnField.id),"maxlength", 10);
}else{
Phone.pnField.regEx = Validation.regExps.phoneInternational;
dojo.attr(dojo.byId(Phone.pnField.id),"maxlength", 15);
}
},true,64);
答案 0 :(得分:0)
我修好了。 IE可能会很痛苦。我在同事的帮助下检查,IE7除了maxlegnth的其他浏览器之外还有不同的语法。它使用maxLegnth作为大写“L”。所以代码现在看起来像这样:
this.phoneTypeDrop = new widget.StyledDropdown(dojo.byId("sPhoneType"),function(){
if(_this.phoneTypeDrop.getSelectedIndex() == 0){
Phone.pnField.regEx = Validation.regExps.phone;
dojo.attr(dojo.byId(Phone.pnField.id),"maxLength", 10);
}else{
Phone.pnField.regEx = Validation.regExps.phoneInternational;
dojo.attr(dojo.byId(Phone.pnField.id),"maxLength", 15);
}
},true,64);