@@ -29,7 +29,8 @@ define(
29
29
var checkoutConfig = window . checkoutConfig ,
30
30
validators = [ ] ,
31
31
observedElements = [ ] ,
32
- postcodeElement = null ;
32
+ postcodeElement = null ,
33
+ postcodeElementName = 'postcode' ;
33
34
34
35
return {
35
36
validateAddressTimeout : 0 ,
@@ -50,7 +51,7 @@ define(
50
51
* @return {Boolean }
51
52
*/
52
53
validateAddressData : function ( address ) {
53
- return validators . some ( function ( validator ) {
54
+ return validators . some ( function ( validator ) {
54
55
return validator . validate ( address ) ;
55
56
} ) ;
56
57
} ,
@@ -64,6 +65,12 @@ define(
64
65
var self = this ,
65
66
elements = shippingRatesValidationRules . getObservableFields ( ) ;
66
67
68
+ //TODO: Split zip code validation and element binding for shipping rates request
69
+ if ( $ . inArray ( postcodeElementName , elements ) === - 1 ) {
70
+ // Add postcode field to observables if not exist for zip code validation support
71
+ elements . push ( postcodeElementName ) ;
72
+ }
73
+
67
74
$ . each ( elements , function ( index , field ) {
68
75
uiRegistry . async ( formPath + '.' + field ) ( self . doElementBinding . bind ( self ) ) ;
69
76
} ) ;
@@ -80,12 +87,12 @@ define(
80
87
var observableFields = shippingRatesValidationRules . getObservableFields ( ) ;
81
88
82
89
if ( element && ( observableFields . indexOf ( element . index ) !== - 1 || force ) ) {
83
- if ( element . index !== 'postcode' ) {
90
+ if ( element . index !== postcodeElementName ) {
84
91
this . bindHandler ( element , delay ) ;
85
92
}
86
93
}
87
94
88
- if ( element . index === 'postcode' ) {
95
+ if ( element . index === postcodeElementName ) {
89
96
this . bindHandler ( element , delay ) ;
90
97
postcodeElement = element ;
91
98
}
0 commit comments