Можно ли как-нибудь отключить проверку на стороне клиента для текстового поля даты dojo?

StackOverflow https://stackoverflow.com/questions/15514

  •  08-06-2019
  •  | 
  •  

Вопрос

В моем примере ниже я использую dijit.form.DateTextBox:

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" constraints="{datePattern:'MM/dd/yyyy'}"  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>' />

Так, например, если пользователь начинает вводить "asdf" в поле дата, поле становится желтым и появляется всплывающее сообщение об ошибке со словами The value entered is not valid..Даже если я удалю constraints="{datePattern:'MM/dd/yyyy'}" это все еще действует.

Не вдаваясь в подробности относительно того, почему, я хотел бы иметь возможность сохранить dojoType и по-прежнему предотвращать проверку в определенных обстоятельствах.

Это было полезно?

Решение

Попробуйте переопределить метод validate в вашей разметке.

Это сработает (только что протестировано):

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" 
  constraints="{datePattern:'MM/dd/yyyy'}"  
  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>'
  validate='return true;'
/>

Другие советы

Мое единственное предложение - программно удалить dojoType на стороне сервера или клиента.Невозможно сохранить dojoType и не проверять его.Если только вы не создадите свой собственный тип, в котором есть ваша логика.

У меня была похожая проблема, когда ValidationTextBox удовлетворял всем моим потребностям, но было необходимо отключить процедуры проверки до тех пор, пока пользователь впервые не нажмет кнопку Отправить.

Мое решение состояло в том, чтобы клонировать это в ValidationConditionalTextBox с помощью пары новых методов:

    enableValidator:function() {
        this.validatorOn = true;
    },

    disableValidator: function() {
        this.validatorOn = false;
    },

Затем - в валидаторе: функция () Я добавил единственную проверку:

        if (this.validatorOn)
        { ... }

Довольно просто, мое значение по умолчанию для validatorOn равно false (это отображается прямо в верхней части javascript).Когда моя форма будет отправлена, просто вызовите enableValidator().Вы можете просмотреть полный текст JavaScript здесь:

http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top