Skip to content

Commit f5bbdf5

Browse files
committed
Added cascaded state/city selector example.
1 parent e1ae0aa commit f5bbdf5

File tree

3 files changed

+123
-1
lines changed

3 files changed

+123
-1
lines changed

css/styles.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ input[type=button]:hover {
185185
background: linear-gradient(to bottom, #92c836 0%,#006e2e 0%,#92c836 0%,#7abc2c 100%);
186186
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#92c836', endColorstr='#7abc2c',GradientType=0 );
187187
}
188+
.selectize-control.default.multi .selectize-input.disabled > div {
189+
border-color: #d8d8d8;
190+
background: #fafafa;
191+
}
188192

189193
/**********************************************************
190194
* BASIC AESTHETIC STYLES (common) *
@@ -278,6 +282,9 @@ input[type=button]:hover {
278282
background: rgba(255,237,40,0.4);
279283
border-radius: 1px;
280284
}
285+
.selectize-input.disabled, .selectize-input.disabled * {
286+
cursor: default !important;
287+
}
281288

282289
/**********************************************************
283290
* BASIC AESTHETIC STYLES (single) *
@@ -317,11 +324,18 @@ input[type=button]:hover {
317324
border-width: 0 5px 5px 5px;
318325
border-color: transparent transparent #808080 transparent;
319326
}
327+
.selectize-control.single .selectize-input.disabled {
328+
opacity: 0.5;
329+
}
320330

321331
/**********************************************************
322332
* BASIC AESTHETIC STYLES (multi) *
323333
**********************************************************/
324334

335+
.selectize-control.multi .selectize-input.disabled {
336+
background-color: #fafafa;
337+
}
338+
325339
/**********************************************************
326340
* LAYOUT STYLES (mandatory) *
327341
**********************************************************/

index.html

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,114 @@ <h2>Features</h2>
649649
});
650650
</script>
651651
</section>
652+
653+
<!-- ************** Cities Demo ************** -->
654+
<section class="demo">
655+
<div class="header">
656+
City / State Selection
657+
</div>
658+
<div class="sandbox">
659+
<label for="select-cities-state">State:</label>
660+
<select id="select-cities-state" placeholder="Pick a state...">
661+
<option value="">Select a state...</option>
662+
<option value="AL">Alabama</option>
663+
<option value="AK">Alaska</option>
664+
<option value="AZ">Arizona</option>
665+
<option value="AR">Arkansas</option>
666+
<option value="CA">California</option>
667+
<option value="CO">Colorado</option>
668+
<option value="CT">Connecticut</option>
669+
<option value="DE">Delaware</option>
670+
<option value="DC">District of Columbia</option>
671+
<option value="FL">Florida</option>
672+
<option value="GA">Georgia</option>
673+
<option value="HI">Hawaii</option>
674+
<option value="ID">Idaho</option>
675+
<option value="IL">Illinois</option>
676+
<option value="IN">Indiana</option>
677+
<option value="IA">Iowa</option>
678+
<option value="KS">Kansas</option>
679+
<option value="KY">Kentucky</option>
680+
<option value="LA">Louisiana</option>
681+
<option value="ME">Maine</option>
682+
<option value="MD">Maryland</option>
683+
<option value="MA">Massachusetts</option>
684+
<option value="MI">Michigan</option>
685+
<option value="MN">Minnesota</option>
686+
<option value="MS">Mississippi</option>
687+
<option value="MO">Missouri</option>
688+
<option value="MT">Montana</option>
689+
<option value="NE">Nebraska</option>
690+
<option value="NV">Nevada</option>
691+
<option value="NH">New Hampshire</option>
692+
<option value="NJ">New Jersey</option>
693+
<option value="NM">New Mexico</option>
694+
<option value="NY">New York</option>
695+
<option value="NC">North Carolina</option>
696+
<option value="ND">North Dakota</option>
697+
<option value="OH">Ohio</option>
698+
<option value="OK">Oklahoma</option>
699+
<option value="OR">Oregon</option>
700+
<option value="PA">Pennsylvania</option>
701+
<option value="RI">Rhode Island</option>
702+
<option value="SC">South Carolina</option>
703+
<option value="SD">South Dakota</option>
704+
<option value="TN">Tennessee</option>
705+
<option value="TX">Texas</option>
706+
<option value="UT">Utah</option>
707+
<option value="VT">Vermont</option>
708+
<option value="VA">Virginia</option>
709+
<option value="WA">Washington</option>
710+
<option value="WV">West Virginia</option>
711+
<option value="WI">Wisconsin</option>
712+
<option value="WY">Wyoming</option>
713+
</select>
714+
<label for="select-cities-city" style="margin-top:20px">City:</label>
715+
<select id="select-cities-city" placeholder="Pick a city..."></select>
716+
</div>
717+
<div class="description">
718+
A demonstration showing how to use the API to cascade controls for a classic state / city selector.
719+
<strong>Note:</strong> The API for fetching cities is a little spotty, so if it fails to list cities, that's what's going on (try another state).
720+
</div>
721+
<script class="show">
722+
var xhr;
723+
var select_state, $select_state;
724+
var select_city, $select_city;
725+
726+
$select_state = $('#select-cities-state').selectize({
727+
onChange: function(value) {
728+
if (!value.length) return;
729+
select_city.disable();
730+
select_city.clearOptions();
731+
select_city.load(function(callback) {
732+
xhr && xhr.abort();
733+
xhr = $.ajax({
734+
url: 'http://www.corsproxy.com/api.sba.gov/geodata/primary_city_links_for_state_of/' + value + '.json',
735+
success: function(results) {
736+
select_city.enable();
737+
callback(results);
738+
},
739+
error: function() {
740+
callback();
741+
}
742+
})
743+
});
744+
}
745+
});
746+
747+
$select_city = $('#select-cities-city').selectize({
748+
valueField: 'name',
749+
labelField: 'name',
750+
searchField: ['name']
751+
});
752+
753+
select_city = $select_city[0].selectize;
754+
select_state = $select_state[0].selectize;
755+
756+
select_city.disable();
757+
</script>
758+
</section>
759+
652760
</div>
653761
</div>
654762
<div class="wrapper">

js/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ $(function() {
4848
$(this).on('change', update);
4949
update();
5050

51-
$container.insertAfter($input.siblings('.selectize-control'));
51+
$container.insertAfter($input.next());
5252
});
5353
});

0 commit comments

Comments
 (0)