안녕하세요!
UI개발을 하다보면 폼 요소 코딩을 많이 할 때가 있습니다. 처음 시작할 때는 마크업만 주고 했던 것이 경력이 늘어나면서 접근성도 생각하게 되고 더 나아가서는 유효성검사도 같이 넣어서 줄 때가 있습니다.
매번 스크립트 작성을 해서 넣는다는 것이 얼마나 시간을 투자를 해야하고 살짝 귀찮니즘도 오고 말이죠…
그래서 제가 구글링도하면서 찾은 것들을 조합해서 만들어놓은 것을 저만 쓰기는 아까워서 같이사용하고자 공유하고자합니다.
기본 폼
필수 정보입니다.
사용예제
<label for="name" class="frmbox input_txt">
<!-- required 속성은 필수입력!! -->
<input type="text" id="name" placeholder="이름" required aria-invalid="false" aria-describedby="name_error">
</label>
<div class="error" id="name_error" role="alert" aria-atomic="true" aria-live="assertive" style="display:block;">필수 정보입니다.</div>
input type=text 예시(작동됨)
소스코드
<div class="frmbox input_txt">
<input type="text" id="name2" placeholder="이름" aria-invalid="false" aria-describedby="name2_error" onblur="checkName(event)">
</div>
<div class="error" id="name2_error" role="alert" aria-atomic="true" aria-live="assertive"></div>
이메일
소스 코드
<div class="frmbox input_txt">
<input type="text" class="non-kr email" id="email" placeholder="예) buppagistar@gmail.com" aria-required="true" aria-invalid="true" aria-describedby="email_error" onblur="CheckEmail(event)">
</div>
<div class="error" id="email_error" role="alert" aria-atomic="true" aria-live="assertive"></div>
생년월일
소스 코드
<div class="frmbox input_txt">
<input type="text" class="non-kr" id="birth" placeholder="예) 20191231" maxlength="8" aria-invalid="false" aria-describedby="birth_error" onkeyup="CheckNumber(event)" onblur="CheckDate(event, false)">
<div class="error" id="birth_error" role="alert"></div>
</div>
이메일과 생년월일에는 한글이 들어갈 필요가 없어서 아래 소스를 추가로 넣었습니다.
$('input[type=text].non-kr').on('blur keyup', function(){
var $this = $(this);
var regexp = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g;
var v = $this.val();
if (regexp.test(v)) {
$this.val(v.replace(regexp, ''));
} else if(!$this.hasClass('email')) {
$this.val( $this.val().toUpperCase() );
}
});
Github(다운로드)
혹시 문제점이 있으면 피드백 주시면 소스는 수정하겠습니다.
[contentcards url=”https://github.com/buppagistar/RegExp.js” target=”_blank”]
답글 남기기