Сведения о вопросе

Fedya

19:37, 17th August, 2020

Теги

javascript   dojo    

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

Просмотров: 393   Ответов: 3

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



  Сведения об ответе

LIZA

20:17, 27th August, 2020

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

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

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


  Сведения об ответе

прога

01:20, 9th August, 2020

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


  Сведения об ответе

ЯЯ__4

00:17, 12th August, 2020

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

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

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

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

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

        if (this.validatorOn)
        { ... }

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться