form submit 전 input value 체크

  • description : 페이지 설명 업데이트 필요
  • author : 도봉산핵주먹
  • email : hylee@repia.com
  • regdate : 2020-01-28
  • lastupdate : 2020-01-31

Jquery를 사용해 form submit() 하기전에 input에 value가 있는지 체크

  1. 주석으로 설명을 대신하겠습니다.
  2. 회원가입이나 게시글 insert 할때 사용하면 유용할것 같습니다.
  3. (응용)form이 submit() 이 아니더라도 특정 태그 안에 input이나 checkbox를 체크할때도 좋을것같습니다.
  4. 실제 코* REKMS에 적용한 소스입니다.
  5. 맨 아래 이미지를 참고하여 보시면 좋을 것 같습니다.
                    //ID가 checkValue_insert 라는 버튼을 클릭 했을 때 이벤트 발생 
                    $('#checkValue_insert').click(function(){
 
                           var result = txtFieldCheck() == true ? true : false;
                           // txtFieldCheck() 가 true일때 
                           if(result)
                           {
                                 // id가 insert_frm 인 form에 submit() 할 action(속성) 주소를 입력한다.
                                 // 밑에 처럼 할경우 버튼 클릭 이벤트가 다를때마다 action을 다르게 입력해서 활용할 수 있다.
                                 // (응용) 등록, 수정 action을 따로 입력 할 수 있다. 
                                 $("#insert_frm").attr("action", "/REKMS/site/siteListInsert.do");
                                 $("#insert_frm").submit();
                           }
 
                    });
 
                    function txtFieldCheck(){
                    // form안의 모든 input text type 조회
                           var txtEle = $("#insert_frm input[type=text]");
 
                           // form 안에 input text type 만큰 for문을 돈다.
                           for(var i = 0; i < txtEle.length; i ++){
 
                                 // input 순서대로 value 체크를 한다.
                                 if("" == $(txtEle[i]).val() || null == $(txtEle[i]).val()){
                                        //value 값이 없는 input id를 가져온다.
                                        var ele_id = $(txtEle[i]).attr("id");
                                        //그 id의 label 정보를 가져온다.
                                        var label_txt = $("label[for='" + ele_id +"']").text();
                                        showAlert(ele_id, label_txt);
                                        return false;
 
                                 }
 
                           }
                           //for문에서 input value가 null이 아니면 true를 return한다.
                           return true;
                    }
                    function showAlert(ele_id, label_txt){
                           //label 정보를 가져와 "라벨정보"+을 입력해 주세요를 alert 띄운다.
                           alert(label_txt + "을 입력해 주세요.");
                           //value가 없는 해당 input에 커서를 갓다놔 둔다.
                           $("#" + ele_id).focus();
                    }

Ref