У меня есть страница с флажком, обозначающим «Все даты» и два поля ввода, которые представляют даты начала и окончания даты. При первой загрузке страницы флажок снят. Требование состоит в том, что флажок снят, а в поля даты начала и окончания ничего не отображается, и пользователь должен показать сообщение.Ввод и проверка флажка с помощью AngularJS
Это то, что у меня есть для флажка и поля ввода и сообщение об ошибке:
<input name="dateSelectAll" type="checkbox" ng-model="$parent.vm.selectAllDates" ng-required="$parent.vm.selectedReport.Parameters.StartDate == null || $parent.vm.selectedReport.Parameters.EndDate == null" />All Available Dates
<input name="beginningDate" type="text" class="form-control form-field" datepicker-popup="dd-MMM-yyyy"
ng-disabled="$parent.vm.selectAllDates"
ng-model="$parent.vm.selectedReport.Parameters.StartDate"
is-open="beginningDateOpened"
ng-required="$parent.vm.selectAllDates == false"
close-text="Close" />
<input name="endDate" type="text" class="form-control form-field" datepicker-popup="dd-MMM-yyyy"
ng-disabled="$parent.vm.selectAllDates"
ng-model="$parent.vm.selectedReport.Parameters.EndDate"
is-open="endDateOpened"
ng-required="$parent.vm.selectAllDates == false"
close-text="Close" />
Пожалуйста, выберите
Это то, что я имею в контроллере в начале:
vm.selectAllDates = false;
Это то, что у меня есть в функции отправки:
if ($scope.reportForm.$valid) {
//do stuff
}
else
{
$scope.reportForm.submitted = true;
}
Если форма «действительна», когда я нажимаю кнопку отправки, отобразится модальное окно.
Что происходит, когда страница загружается, и если я не укажу даты или поставлю флажок, и я попал в submit, появится сообщение, и я не могу представить, что в порядке.
Когда я устанавливаю флажок, сообщение остается, но я могу отправить.
Снимите флажок и введите даты, когда сообщение остается, но я могу отправить.
Как скрыть сообщение после выполнения любого из условий? Сожалею! Я все еще новичок в Angular.
не ответ на вопрос, но я просто понял, что угловые могут использовать типы ввода HTML5 ["time"] (https://docs.angularjs.org/api/ng/input/input%5Btime%5D) и ["date"] (https://docs.angularjs.org/api/ng/input/input%5Bdate%5D), это сделало мою жизнь намного проще, поскольку собственный браузер обрабатывает всплывающее окно в дату. Angularjs также корректно отбрасывает браузеры, не совместимые с HTML. Это позволило мне значительно упростить весь код, связанный с частями моего приложения, и это было так здорово. Надеюсь, это поможет! – DrCord