Flex:禁用非美国或加拿大的邮政编码验证

时间:2013-03-12 14:35:35

标签: flash flex flash-builder

目前我正在根据国家/地区下拉值设置ZipCode域。

if(this.countryCTComboBox.getSelectedCode() == 'USA')
                {
                    this.zipCodeTextInputFieldValidator.domain = ZipCodeValidatorDomainType.US_ONLY;
                    this.zipCodeTextInputFieldValidator.wrongLengthError = this.zipCodeTextInputFieldValidator.wrongUSFormatError;
                } 
                else if(this.countryCTComboBox.getSelectedCode() == 'Canada')
                {
                    this.zipCodeTextInputFieldValidator.domain = ZipCodeValidatorDomainType.CANADA_ONLY
                    this.zipCodeTextInputFieldValidator.wrongLengthError = this.zipCodeTextInputFieldValidator.wrongCAFormatError;
                } 

如果从国家/地区下拉列表中选择美国或加拿大,则可以正常工作。但它会给所有其他国家/地区带来wrongUSFormat错误。
是否有任何方法可以禁用任何其他国家的验证。

1 个答案:

答案 0 :(得分:1)

本声明的最后一部分是在输入if语句的字符串上运行不同的验证器或根本没有验证器。

} else {
    trace("this is not a US or Canada Zip code");
    // do something else with the zip code now, or do nothing
    zipCodeTextInputFieldValidator.source = null;
}

您可能需要修改此if/else语句的其他分支,以便通过将source设置为适当的文本输入来重新启用验证程序。

我不确定您还需要做什么,但也要检查以确保您没有将文本字段限制为所有数字或一定长度的字符,这可能会让您感到沮丧。