Dojo 날짜 텍스트 상자에 대한 클라이언트 측 유효성 검사를 비활성화할 수 있는 방법이 있습니까?
-
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을 유지하면서도 특정 상황에서 유효성 검사를 방지할 수 있기를 바랍니다.
해결책
마크업에서 유효성 검사 메서드를 재정의해 보세요.
이것은 작동합니다(방금 테스트했습니다).
<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입니다(이 값은 자바스크립트 상단에 바로 표시됩니다).양식이 제출되면 간단히 활성화Validator()를 호출하세요.여기에서 전체 JavaScript를 볼 수 있습니다.
http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js