Miya Validator는 server-side validation이 이루어진 가운데 부가적으로 사용자의 편의 향상을 위해 사용할 수 있는 도구(client-side validator)입니다. server-side validation 없이 Miya Validator를 사용하는 것은 사용자에 의한 폼 전송 값의 악의적인 변형이 우려되므로 좋은 생각이 아닙니다. Miya Validator는 사용자의 편의 향상을 위한 보조도구로서 만들어졌음을 알립니다.
Miya Validator는 거친마루님의 유연한 폼 검사기의 아이디어를 바탕으로 제작된 라이브러리입니다. 이 라이브러리는 GPL이 적용됩니다.
Enhancement/Bug
Miya Validator의 다음 버전에서 개선하였으면 하는 사항들을 두서없이 적어봅니다. 댓글이나 메일(mctenshi_at_gmail_dot_com) 주시면 조율 후 이 곳 개선사항에 추가 후 추후 버전에 반영하도록 하겠습니다. 본 페이지의 내용은 계속하여 업데이트 됩니다.
Miya Validator 0.3
0.3 버전의 개선 및 버그 수정에 대한 사항을 게시할 예정입니다.
“Enhancement/Bug” - 13개의 코멘트/트랙백
폼검사 후 focus 넘겨줄때 hidden 항목은 에러가 납니다.
focus항목을 따로 지정할 수 있을지요~?
사자삼촌님 안녕하세요.
focus 동작은 Miya Validator가 내부적으로 수행하는 동작이 아니고 예제에서처럼 getErrorElement 메소드를 통해 에러가 발생한 element를 가져와서 사용자가 만드는 체크 함수(예제에서 checkForm)를 통해 이루어집니다.
예제에서 사용된 checkForm 함수를 hidden type의 element에는 focus 되지 않도록 수정하려면 다음과 같이 수정하면 될 것 같습니다.
수정될 내용
수정된 내용 예시
getElementType 메소드가 documentation에서 빠져있군요. 바로 추가하겠습니다. 감사합니다.
hangul 함수에 버그가 있어 수정하였습니다.
hangul 함수는 값이 한글로만 입력되어야 하는 조건을 검사하는 함수인데, 기존에는 값에 한글이 한 글자만 입력되어도 검사를 통과하도록 되어있었습니다. 위의 코드와 같이 수정되었으며 현재 존재하는 모든 버전(0.1, 0.2)에 반영되었습니다.
이용에 혼란을 드렸다면 죄송합니다. 버그를 알려주신 RedCat Caravan님께 감사드립니다.
min, max 체크시
var isNumber = value.test(/^[0-9]*$/); 로 된 소스를
var isNumber = /^[0-9]$/.test(value); 나 var pattern = /^[0-9]$/; var isNumber = pattern.test(value); 로 변경해야 합니다.
형이님 감사합니다. 수정 반영 하였습니다. 휴, 이런 문제가 있었네요. 좀 더 많은 테스트를 통해 신뢰있는 라이브러리가 되도록 노력하겠습니다.
박성재님의 제보로 MiyaValidator에서 사용자 정의 오류 메시지가 undefined로 출력되는 버그를 수정하였습니다. 모든 버전에 수정 적용되었으며 수정된 부분은 다음과 같습니다. 0.2 버전 기준으로 482번째 줄이며, 0.1 버전 기준으로는 399번째 줄입니다.
var typeMessage = MiyaValidator.ERROR_MESSAGE[this.errorType] || this.errorType;name에 []을 이용한 input type=”arName[]” 이런식으로 배열로 처리할려고 하는데 폼 검사에서 처리할수 있는 방법이 있는지요?
이정우님 안녕하세요.
혹시 배열로 처리하고자 하는 요소가 체크박스인가요? 체크박스라면 체크박스 항목의 선택된 항목수를 검사 예제와 같이 처리할 수 있습니다.
만약 일반 텍스트 입력창(
<input type="text" />)이라면 좀 귀찮지만 아래의 코드와 같이 배열의 갯수만큼 루프를 돌면서 처리해줄 수 있습니다.네 체크박스가 아니여서 처리 방법이 있나 하여 문의 드렸었습니다. 말씀대로 처리하면 될거 같으네요 고맙습니다.
focus문제에 대해서 hidden 타입에 대한 focus 문제가 있고
또 style 에 대한 문제가 있네요. display == “none” || visibility == “hidden” 일때에 대하여 포커스 잃는 부분을 수정 부탁드릴께요
MiyaValidator.getElementType = function(element) { ... ... var sty = element.style;... 각 항목 리턴 ... ... } }
쎔군님, 안녕하세요? :)
focus의 경우 Miya Validator 내부에서 처리하는 동작이 아니기 때문에 focus가 가능한지 판별하는 코드 역시 삽입되어 있지 않습니다. 따라서 element가 보이는지 마는지에 따른 처리도 되어 있지 않습니다.
style에 대한 문제는 구체적으로 무슨 뜻으로 하신 말씀인지 다시 한번 설명 부탁드려도 될까요?
예제를 참고하여 jsp 페이지에서 아래와 같이 소스를 구현하였습니다.
//
그런데 검증이 되지 않고 그냥 action url로 처리되어 넘어가버립니다.
에 대한 링크도 제대로 걸려있는 상태이구요. 무슨문제일까요?
안녕하세요? 예제와 관련 샘플 소스를 뒤지다가 못찾아서 코멘트 남겨봅니다.
같은 항목을 체크할때 메시지가 2개일경우 예로 아이디 를 입력받는다면,.
“아이디가 비어있습니다.” 와 ” 아이디는 4자 이상으로 해주세요 ” 와 같이
멘트가 2개 필요시.. v.add 를 2번 해주어야 하나요 ?
v.add(“id”, { required:true message: “아이디를 입력하시오!” }); v.add(“id”, { minbyte : 4 maxbyte : 12 message : “4~12자 바이트 미만으로 쓰세요 }); 이런식으로만 가능한가요 ?
아래와 같은 식은 안되는건가요? 즉 message 가 유동적으로 할당되는것이죠. v.add(“id”, { required:true message: “아이디를 입력하시오!” minbyte : 4 maxbyte : 12 message : “4~12자 바이트 미만으로 쓰세요 }
이런식의 사용은 불가 한지 궁금합니다.
코멘트 남기기