Я очень плохо знаком с AngularJS, и мне было поручено внести изменения в валидацию в раскрывающемся списке.Раскрывающийся список отображается только тогда, когда определенные значения (страны) выбраны из другого раскрывающегося списка.Раскрывающийся список, в котором я работаю, заполняется списком состояний для выбранной страны, имена которых получены из объекта json на сервере.
Для параметров в раскрывающемся списке состояний заданы числовые значения (они не в объекте json).Первый вариант - please select
и имеет значение 0
.Кажется, этот выбран автоматически.Итак, мне нужно, чтобы это было отклонено проверкой.
Я пытался добавить required
к <select>
, но это не дало желаемого эффекта - возможно, потому что выбрана опция .
Я также пытался Проверка раскрытия AngularJS , но у меня это не сработало.
Вот код Angular
<div class="form-group state-surround"
ng-class="{'has-error': (newAddressForm.state.$dirty || isPageSubmitted) && newAddressForm.state.$error.required}"
ng-if="(address.countryCode == 'CA' || address.countryCode == 'IN' || address.countryCode == 'US')">
<label for="address-primary-input-state">State</label>
<select required name="state" id="address-primary-input-state" size="1"
class="form-control" name="state" ng-model="address.stateCode"
ng-options="s.code as s.name for s in states[address.countryCode]">
</select>
</div>
А вотобъект json, который заполняет <select>
параметрами
var states = {
CA: [
{ code: "", name: "Please select" },{ code: "AB", name: "Alberta" },{ code: "BC", name: "British Columbia" },{ code: "MB", name: "Manitoba" },{ code: "NB", name: "New Brunswick" },{ code: "NL", name: "Newfoundland and Labrador" },{ code: "NS", name: "Nova Scotia" },{ code: "NT", name: "Northwest Territories" },{ code: "NU", name: "Nunavut" },
{ code: "ON", name: "Ontario" },{ code: "PE", name: "Prince Edward Island" },{ code: "QC", name: "Quebec" },{ code: "SK", name: "Saskatchewan" }, { code: "YT", name: "Yukon" }
],.....
Как упоминалось ранее, раскрывающиеся списки заполняются точно так, как ожидалось.В чем мне нужна помощь, так это как сделать угловой отклонение следующего выбранного параметра:
<option value="0" selected="selected" label="Please select">Please select</option>