달력

9

« 2019/9 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  
  •  
  •  
2017.11.22 09:33

Input Text의 유효성 검사 Language/JavaScript2017.11.22 09:33

공통.js에 아래 부분을 넣는다. 


<script>

var essentialCheckArr = [];

//저장 전에 호출

//필수 항목에 값이 다 있을 경우에만 true 반환

function checkEssential(){

for(var i=0;i<essentialCheckArr.length;i++){

var tmpStr = $('#'+ essentialCheckArr[i]).val();

if( tmpStr == '' || tmpStr == null ){

alert("필수 입력사항입니다.");

$('#'+ essentialCheckArr[i]).focus();

return false;

}

}

return true;

}

/* 

* 유효성 검사 기능

* inputObj 검사를 할 대상 Object

* validFuncArray 검사 항목 지정(배열 형태) : ex) ["isNumer","spaceCheck"]

* maxLength 최대 길이 체크 ( 0 일 경우 제외 )

* essential 필수여부 'Y'/'N' 값이 Y인 경우 checkEssential function을 호출할 경우 해당 항목에 값이 있는지 체크하여 결과값을 반환한다.

*/

function textValidation(inputObj, validFuncArray, maxLength, essential){

if( essential == 'Y'){

essentialCheckArr.push( inputObj.attr("id") );

}

inputObj.bind('focusin keyup', function(){ // input태그에 포커스가 들어오거나 키가 눌렸을 때 실행됨

var inputValue = inputObj.val();

if( maxLength > 0 ){

if( inputValue.length > maxLength) {

alert("<spring:message code='cmn.vaild.maxLen' />");

inputObj.val( inputValue.substring(0, maxLength ) );

inputObj.focus();

return;

}

}

var funcResult = null; // 함수 실행 결과를 담을 flag

for(i=0; i<validFuncArray.length; i++){ // 검증에 사용할 함수명 배열을 반복문으로 돌린다.

var funcName = validFuncArray[i]; // 배열에서 함수명을 하나씩 뽑아낸다. 

var funcObj = window[funcName]; // 함수명(string)을 객체(object)로 받는다.

funcResult = funcObj(inputValue); //  해당 함수를 실행하여 결과 메시지를 변수에 담는다. 만약 함수 전체를 통과하면 Null을 반환한다.

if(funcResult != null){ // 검증에 통과하지 못한 함수가 있을 경우 반복문 탈출

break;

}

}

if(funcResult != null){ // 검증에 통과하지 못했을 때,

alert(funcResult); 

inputObj.val( inputValue.substring(0, inputValue.length -1 ) );

inputObj.focus();

}else{ // 검증에 통과했을 때,

});

}

/**

* 입력값이 특정 문자만으로 되어있는지 체크하며

* 특정문자만을 허용하려 할때 사용한다.

*/

function containsCharsOnly(input, chars){

for (var i=0; i < input.length; i++){

if (chars.indexOf(input.charAt(i)) == -1){

return false;

}

}

return true;

}

 

// 영문과 숫자만 입력받도록 검증

function isAlphabetNumber(str){

var check = /^[A-Za-z0-9]*$/;

if(check.test(str)){

return "영문과 숫자 입력이 가능합니다.";

}

return null;

}

// 영문만 입력받도록 검증

function isAlphabet(str){

var check = /[^A-Za-z\s]/;

if(check.test(str)){

return "영문만 입력이 가능합니다.";

}

return null;

}


// 공백 허용하지 않도록 검증

function spaceCheck(inputVal){

var invalid = " ";

if(inputVal.indexOf(invalid) > -1){

return "공백이 허용되지 않습니다.";

}else{

return null;

}

}

/**

* 입력값이 알파벳 대문자인지 체크한다

*/

function isUpperCase(input){

var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

if( containsCharsOnly(input, chars) ) return null;

else return  "대문자만 입력가능합니다.";

}

/**

* 입력값이 알파벳 소문자인지 체크한다

*/

function isLowerCase(input){

var chars = "abcdefghijklmnopqrstuvwxyz";

if( containsCharsOnly(input, chars) ) return null;

else return  "소문자만 입력가능합니다.";

}

/**

* 입력값이 숫자만 있는지 체크한다.

*/

function isNumer(input){

var chars = "0123456789.";

if( containsCharsOnly(input, chars) ) return null;

else return  "숫자만 입력가능합니다.";

}

/**

* 입력값이 이메일 형식인지 체크한다

*/

function isValidEmail(input){

       var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;

       if(format.test(input)) return "이메일 형식으로 작성하여야 합니다.";

       else return null ;

}


/**

* 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크한다

*/

function isValidPhone(input){

       var format = /^(\d+)-(\d+)-(\d+)$/;

       if(format.test(input)) return "전화번호 형식으로 작성하여야 합니다.";

       else return null ;

}

</script>




--------------------------------------------------------------------------------------------------------------

사용법

//input text를 event에 등록
$(document).ready(function() {
    ...
    textValidation( $("#ID"), ["isNumer","spaceCheck"], 10, 'Y' );
}


//저장 전 checkEssential()를 호출하여 필수체크로 정의된 input 중 값이 없는게 있는지 체크한다.

$('#saveBtn').click(function(){

if( checkEssential() ){

Save();                                

}

});



Posted by 현자

댓글을 달아 주세요

  1. 코락 CoRock 2019.03.08 10:13 신고  댓글주소  수정/삭제  댓글쓰기

    Validation 할 때 도움이 되었습니다
    좋은 글 감사합니다~

2017.01.06 09:40

Spring 컨트롤러에서 트랜잭션 사용하기 WEB2017.01.06 09:40

//트랜잭션 기능 추가 시 추가해야 될 목록들

import org.springframework.transaction.TransactionDefinition;

import org.springframework.transaction.TransactionStatus;

import org.springframework.transaction.support.DefaultTransactionDefinition;


@RequestMapping(value="/Main.do", method=RequestMethod.GET)

public @ResponseBody List Main(ModelMap model, MVoidCostVO vo) throws Exception{

List<HashMap> result = new ArrayList<HashMap>();

HashMap<String, String> hm = new HashMap<String, String>();


DefaultTransactionDefinition def = new DefaultTransactionDefinition();

def.setName("MPreferReg-transation");

def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

TransactionStatus status = transactionManager.getTransaction(def);

Boolean isSucc = true;

try{

//같은 트랜잭션으로 사용할 부분을 여기서 사용한다.


//논리적으로 오류가 발생 시 isSucc값을 false 로 반환한다.

}catch(Exception e){

isSucc = false;

transactionManager.rollback(status);    //오류 시 롤백

}finally{

if( isSucc ){

transactionManager.commit(status);  //오류가 없을 경우 커밋

}

}

}


     result.add(hm);

return result;

}

'WEB' 카테고리의 다른 글

Spring 컨트롤러에서 트랜잭션 사용하기  (0) 2017.01.06
Posted by 현자

댓글을 달아 주세요

2016.11.29 16:19

오라클에서 Unix Timpstamp 조회 DB/oracle2016.11.29 16:19

SELECT

ROUND((SYSDATE - TO_DATE('19700101','YYYYMMDD')) * (86400)) AS UNIXTIMESTAMP

FROM dual

;

'DB > oracle' 카테고리의 다른 글

오라클에서 Unix Timpstamp 조회  (0) 2016.11.29
시퀀스 현재 값 확인  (1) 2011.11.14
오라클 alert log 경로 보기  (0) 2011.06.08
테이블 컬럼 순서 조절하기  (0) 2011.03.25
ORA-4031 장애 해결  (0) 2011.01.10
SUBSTR  (0) 2011.01.05
Posted by 현자

댓글을 달아 주세요