Есть ли способ отключить проверку на стороне клиента для текстового поля даты dojo? - PullRequest
3 голосов
/ 19 августа 2008

В моем примере ниже я использую 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 и все же предотвратить проверку в определенных обстоятельствах.

Ответы [ 3 ]

6 голосов
/ 19 августа 2008

Попробуйте переопределить метод 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;'
/>
1 голос
/ 12 сентября 2008

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

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

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

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

Затем - в валидаторе: function () я добавил одну проверку:

        if (this.validatorOn)
        { ... }

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

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

1 голос
/ 19 августа 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...