Skip to content

Commit a9a21a7

Browse files
committed
feat: zipcode change bind to selects of city and dist
1 parent 85db754 commit a9a21a7

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

app/views/templates/selects.js.erb

+20
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Gaia5FPRO.generate_selects = function(random_id) {
5959
var wrapper_tag = params['wrapper_tag']
6060
var input_class = params['input_class']
6161
var select_class = params['select_class']
62+
var city_zipcodes = {}
6263

6364
city.addClass(select_class)
6465
dist.addClass(select_class)
@@ -76,6 +77,11 @@ Gaia5FPRO.generate_selects = function(random_id) {
7677
'text': text
7778
}).attr('data-zipcode', dist_obj.zipcode));
7879
})
80+
if(city.attr('data-dist-value')) {
81+
dist.val(city.attr('data-dist-value'))
82+
dist.trigger('change')
83+
city.removeAttr('data-dist-value')
84+
}
7985
});
8086

8187
dist.on('reset', function() {
@@ -99,6 +105,9 @@ Gaia5FPRO.generate_selects = function(random_id) {
99105
'text': city_name,
100106
'selected': selected
101107
}));
108+
cell.dists.forEach(function(data_dist) {
109+
city_zipcodes[data_dist.zipcode] = { city: city_name, dist: data_dist.name }
110+
})
102111
// assign default value
103112
if(selected) {
104113
city.trigger('change');
@@ -111,6 +120,17 @@ Gaia5FPRO.generate_selects = function(random_id) {
111120
}
112121
}
113122
});
123+
zipcode.on('change', function() {
124+
tmp = city_zipcodes[zipcode.val()]
125+
if(tmp && tmp.city) {
126+
city.val(tmp.city)
127+
dist_value = tmp.dist
128+
if(dist_value) {
129+
city.attr('data-dist-value', dist_value)
130+
}
131+
city.trigger('change')
132+
}
133+
})
114134

115135
selects.append($('<' + wrapper_tag + '>').addClass('gaia-cities').append(city));
116136
selects.append($('<' + wrapper_tag + '>').addClass('gaia-dists').append(dist));

0 commit comments

Comments
 (0)