Angular ui: начальная проверка входных данных datepicket

javascript angularjs datepicker angular-ui-bootstrap angular-ui

122 просмотра

1 ответ

Я использую этот DatePicker . На данный момент пользователь может написать все, что ему нравится, в поле ввода, а это не то, что я хочу.

Мой код:

session.js

  session.getDateFormat = function() {
            return 'yyyy-MM-dd';
        };

        session.formatDate = function(date) {
            return $filter('date')(date, session.getDateFormat());
        };

Controller.js

vm.dateFormat = session.getDateFormat();
function submit() {
date : session.formatDate(vm.data.date)
 }

Код намного длиннее, но это в основном часть, касающаяся даты. И HTML

<input type="text" class="form-control" uib-datepicker-popup="{{vm.dateFormat}}" placeholder="{{vm.dateFormat}}" ng-model="vm.data.date" is-open="vm.dateOpened" ng-required="true" ng-disabled="disabled" />

Администратор может выбрать, хочет ли он принять getDateFormat yyyy-mm-ddили dd-mm-yyyyт. Д.

Что я хочу:

  1. Чтобы убедиться, что пользователь ввел дату в правильном формате, в противном случае необходимо автоматически очистить поле и отобразить сообщение об ошибке вместе с правильным форматом даты в качестве подсказки для пользователя. Все, что необходимо сделать перед нажатием кнопки «Отправить».
  2. Не позволяя пользователю вводить буквы явно
  3. Нет строго заданного регулярного выражения html, я хочу что-то проверить, совпадает ли ввод с getDateFormat, в противном случае очистите поле и отобразите ошибку.
  4. Нет Jquery, я не использую Jquery во всем проекте.
  5. Если у вас есть какие-либо другие средства выбора даты, которые работают с angular и bootstrap без использования Jquery, дайте мне знать.
Автор: Lynob Источник Размещён: 08.11.2019 11:14

Ответы (1)


0 плюса

Решение

Мне пришлось обновить до angular-ui 1.3.3, а затем мне пришлось дать вводимому имени дату 'datepicker', а форме - 'frm', а затем

<div ng-if="!frm.datepicker.$error.required"">
<div class="datepicker-error" ng-if="frm.datepicker.$invalid">
some error message
</div></div>

Я не очистил поле, поскольку, если пользователь не завершит ввод, оно будет недействительным и, следовательно, может быть очищено. Если у кого-то есть лучшее решение, дайте мне знать.

Автор: Lynob Размещён: 20.08.2016 05:39
Вопросы из категории :
32x32