В моем примере ниже я использую 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;
},
Затем - в валидаторе: function () я добавил одну проверку:
if (this.validatorOn)
{ ... }
Довольно просто, мое значение по умолчанию для validatorOn - false (это появляется в самом верху javascript). Когда моя форма отправляется, просто вызовите enableValidator (). Вы можете просмотреть полный JavaScript здесь:
http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js
constraints="{datePattern}"
упоминается НИКОГДА ни в каких документах додзё или API? Большое спасибо за это. Это беспокоило меня некоторое время. слезы радости