2013-03-12 81 views
0

目前我正在根據國家/地區下拉值設置ZipCode域。Flex:禁用非美國或加拿大的郵政編碼驗證

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

該聲明的最後部分是根據輸入到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設置到適當的文本輸入重新啓用驗證。

我不知道你還需要做什麼,但也檢查確定你沒有限制你的文本字段的所有數字或一定的長度的字符,可能會絆倒你。

+0

在我發佈的代碼中,我設置了ZipCode的域名。不知道如果你知道Flex的ZipCode組件。在其他語句中,我想完全禁用Zipcodevalidator,但問題在於如何執行。 – 2013-03-12 14:58:58

+1

@HimanshuYadav,你還沒有展示你如何連接驗證器,但你顯然需要解除它。例如,您可以將驗證器的source屬性設置爲null:'zipCodeTextInputFieldValidator.source = null;'我想我會將其添加到答案中;) – 2013-03-12 17:17:42

相關問題