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을 유지하면서도 특정 상황에서 유효성 검사를 방지할 수 있기를 바랍니다.

도움이 되었습니까?

해결책

마크업에서 유효성 검사 메서드를 재정의해 보세요.

이것은 작동합니다(방금 테스트했습니다).

<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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top