그누보드 기본 회원가입폼을 변경해서쓰다가
이번에 반응형으로 모조리 통합하면서 변경하게되었다
앱에서나 여타 사이트처럼 커서가 이동하면 바로바로 처리하도록하려고했고
ajax로 해야하나.. 하다가
플러그인발견!
첨에는 쪼금 난해했지만
일단 js 추가해주고
$.validator.setDefaults({
onfocusout: function(element) { $(element).valid(); },
focusInvalid: true,
focusCleanup: false,
errorClass: 'form-control-msg',
errorElement: 'div',
errorPlacement : function (error, element){ // data-error 속성으로 해당 위치 삽입
var placement = $(element).data('error');
if (placement) {
$(placement).append(error);
} else { // 없을경우 마지막노드 뒤에 삽입
element.parent().children().last().after(error);
}
},
highlight: function(element) {
$(element)
.closest('.form-group')
.addClass('has-error');
},
unhighlight: function(element, errorClass, validClass) {
$(element)
.closest('.form-group')
//.removeClass('has-error')
//.addClass('text-success');
},
});
//폼검사
$('#btn_submit, .form-control').click(function(){
$("#fregisterform").validate({
//validation이 끝난 이후의 submit 직전 추가 작업할 부분
submitHandler: function() {
if(!$("input:checkbox[id='agree_01']").is(":checked"))
{
toastr.error("이용약관을 동의해주세요");
return false;
}
document.getElementById('fregisterform').submit();
},
//규칙
rules: {
mb_id: {
required : true,
remote: {
url: "<?php echo G5_BBS_URL?>/ajax.id_chk.php",
type: "POST",
},
specialchar:true
},
mb_name: {
required : true,
},
},
//규칙체크 실패시 출력될 메시지
messages : {
mb_id: {
required : "아이디를 입력해 주세요.",
remote : "중복된 아이디입니다.",
specialchar : "회원아이디는 영문자, 숫자, _ 만 입력하세요."
},
mb_name: {
required : "이름을 입력해 주세요.",
},
}
});
});
대충 이런느낌?
체크박스는 toastr 도 써주고
ajax로 바로바로 중복검사도 해줄수있더라