Dojo의 예제 - Dojo JavaScript 라이브러리를 사용하여 Ajax 응용 프로그램 빌드하기 - 서버 측 유효성 검사를 양식의 username validationtextbox 필드에 추가합니다. 기본적으로 xhrGet 요청을 제출 한 usernameOnChange 함수를 추가했습니다. xhrGet은 JSON을 반환하고 usernameValidationHandler에 의해 처리됩니다.dojo dijit 클라이언트 측 유효성 검사 onchange
잘 작동하지만 usernameValidationHandler는 툴팁 표시 메시지 만 오류로 설정합니다. 필드가 유효하지 않으므로 사용자가 양식을 제출할 수 있습니다. 양식이 제출되지 않도록 양식을 무효로 설정하려면 어떻게해야합니까?
<input type="text" id="userName" name="userName" size="20"
dojoType="dijit.form.ValidationTextBox"
trim="true"
required="true"
onChange="userNameOnChange"
regExp="\w+"
invalidMessage="User name is required"
/>
function userNameOnChange() {
var userName = dijit.byId("userName").getValue();
if (userName == "") {
return;
}
dojo.xhrGet({
url: "validateUserName.jsp?userName=" + userName,
handleAs: "json",
handle: userNameValidationHandler
});
}
function userNameValidationHandler(response) {
dijit.byId("userName").displayMessage();
if (!response.valid) {
var errorMessage = "User name already taken";
// Display error message as tooltip next to field
dijit.byId("userName").displayMessage(errorMessage);
// HOW DO I SET THE FIELD TO BE INVALID NOW???
}
}
dojo.connect를 사용하면 위젯의 'onChange'메서드를 'this'를 유지하는 함수에 직접 연결할 수 있습니다 '참조. 그렇게하면 ID 조회를 수행 할 필요가없고 단일 위젯 인스턴스에 잠글 수 있습니다. – peller