如何在电话验证方案中使用dojo.destroy和dojo.create?

时间:2010-12-01 18:21:27

标签: javascript dojo

我遇到一个问题,我有一个连接到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);

1 个答案:

答案 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);