본문 바로가기

Dev/Orvercome 3sec memory

입력 Form을 위한 몇 가지 Validation check

728x90

/**

 * @author SujeongYeom

 */

$(document).ready(function(){


/******* 멤버 추가 취소 ************/

$("td img").bind("click", fnDeleteField)

/******* 멤버 추가 *************/

$(".btn_mem_add").click(function(){

var $addableMemNum =parseInt($(".c97ad49").html(),10); 

var $addedMemNum = $(".iv_module").size(); 

/** 1명 -> 2명일 때 X표시 첫번째 라인에 추가 **/

if($addedMemNum == 1)

$("td img").toggle();

if($addableMemNum > $addedMemNum){

if($(".i_phone").length > 0) {

/* 전화번호 초대 */

$(".iv_module:last").clone(false) /* SelectBox에 걸린 이벤트를 그대로 복사해서 붙여넣기하면 문제 발생하므로 방지. 

그 외 element에 해당하는 이벤트는 각각 bind 해야 함 */

.find("td img").bind("click", fnDeleteField)

.end()

/* 이전 필드 복사 하면서 같이 복사 된 불필요한 속성값 제거 */

.find(".select1").removeAttr("style").removeAttr("sb")

.siblings("div:eq(0)").remove()

.end()

.end()

/* 국가 선택 값 초기화 */

.find(".select1")

.siblings(".noti_alert_red02").hide()

.end()


.val("")

.bind("change", fnCheckNation)

.selectbox() // select box style

.end()

/* 전화 번호 입력 값 초기화 */

.find("input.i_phone").attr({"value":""})

.bind("keyup blur", {phoneForm:false},fnCheckPhoneNumber)

.blur()

.end()

.appendTo(".invite_infomaion");

} else{

/* 이메일 초대 */

$(".iv_module:last").clone(false)

.find("input.i_email").bind("blur",fnCheckEmailForm)

.end()

.find("td img").bind("click", fnDeleteField)

.end()

.find("input.i_email").attr({"value":""})

.siblings(".noti_alert_red02").hide()

.end()

.end()

.appendTo(".invite_infomaion");

}

$("[placeholder]").placeholder();

}

});

/********* 전화 번호 입력 값 형식 확인 *************/

$("input.i_phone").bind("keyup blur",  {phoneForm:false}, fnCheckPhoneNumber);

$("input.i_phoneForm").bind("keyup blur", {phoneForm:true},fnCheckPhoneNumber);

$(".select1").bind("change", fnCheckNation);


/********* 이메일 입력 값 형식 확인 *************/

$("input.i_email").bind("blur", fnCheckEmailForm);

/********* 프로필 사용자 입력 값 형식 확인 *************/

$("input.i_user").bind("keyup blur", function(event){

var $inputVal = $(this).val();

/*Byte 확인*/

if(stringByteSize($inputVal) > _byteLimit_user_name)

$(this).val($inputVal.substring(0,_byteLimit_user_name)).blur();

$(this).siblings(".noti_alert_red02")

.toggle(!($inputVal != ''));

});


/** 사진 첨부 **/

$(".mypic .btn_gray_01").click(function(){

  $("input[type=file]").click();

 });


/**  그룹코드 **/

$("span .i_code").bind("keyup",function(event){


var inputBox = $("span .i_code");

var currentBoxNumber = inputBox.index(this);

var inputValue = inputBox[currentBoxNumber].value;

if(!(inputValue == inputValue.match(/^[0-9]+$/))){

inputBox[currentBoxNumber].value = '';

return;

}

if(inputValue.length == 1 && inputBox[currentBoxNumber + 1] != null) {


inputBox[currentBoxNumber + 1].focus();

}

});

});


/** 입력 필드 제거 **/

function fnDeleteField() {

var $inputSize = $(".iv_module").size(); 

if( $inputSize > 1)

$(this).parents(".iv_module").remove();

if($inputSize == 2)

$("td img").toggle();

}


/** 전화 번 호 입력 값 확인 **/

function fnCheckPhoneNumber(event){

var $inputVal = $(this).val();

/*Byte 확인*/

if(stringByteSize($inputVal) > _byteLimit_phone_number)

$(this).val($inputVal.substring(0,_byteLimit_phone_number)).blur();

$inputVal = $(this).val();

if("blur" == event.type) {

var $selEle = $(this).parent().parent().find(".select1");

$selEle.siblings(".noti_alert_red02")

.toggle(($inputVal != '' && $selEle.val() == ""));

}


if(event.data.phoneForm){

$(this).parent().find(".noti_alert_red02")

.toggle($inputVal != '' && fnCheckPhoneForm($inputVal));

}else {

$(this).parent().find(".noti_alert_red02")

.toggle(fnCheckNumber($inputVal));

}

}


/** 국가 선택 여부 확인 **/

function fnCheckNation() {

var $inputEle = $(this).parent().parent().find(".i_phone");

$(this).siblings(".noti_alert_red02")

.toggle(  $inputEle.val() != '' && $(this).val() == '');

}


/****************************** 숫자 입력값 확인 ****************************************/ 

function fnCheckNumber(param){

return new RegExp('[^0-9]+','g').test(param);

}


/****************************** 전화번호 입력값 형식 확인 *******************************/ 

function fnCheckPhoneForm(param){

/* 2012.06.14 현재 확인 포맷

* 000-0000-0000

* 0000-000-000

* 00-000-0000

* 00-00000-000000 

*/

var phoneNumberPattern = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/;  

return (!phoneNumberPattern.test(param) );

}


function fnCheckEmailForm(event){

var $inputVal = $(this).val();

var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

$(this).parent().find(".noti_alert_red02")

.toggle(!emailReg.test($inputVal));

}