2017-04-07 4 views
0

데이터베이스에 레코드를 추가하기 위해 하나의 양식을 작성 했으므로 레코드 삽입 및 모두 잘 작동합니다.양식의 유효성이 확인되지 않습니다.

폼에 대한 유효성 검사를하고 싶었지만 이제는 폼을 제출하고 빈 값으로 제출 버튼을 클릭 한 후 필드를 필수로 설정했는데 빈 값이 데이터베이스에 삽입됩니다.

A simple jQuery form validation script

을하지만 어떻게 든 나를 위해 작동하지 :

나는 확인을 위해이 링크를 언급했다.

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Post</title> 

</head> 
<body> 

<form class="postForm" id="postForm" method="post" action="addPost.php"> 


    <fieldset> 
     <legend>Please add the details below </legend> 
     <p> 
      <label for="title">Title (required, at least 2 characters)</label> 
      <input id="title" name="title" minlength="2" type="text" required> 
     </p> 

     <p> 
      <label for="url">URL (required)</label> 
      <input id="url" type="url" name="url" required> 
     </p> 

     <p> 
      <label for="desc">Description (required, at least 2 characters)</label> 
      <input id="desc" name="desc" minlength="2" type="text" required> 
     </p> 

     <p> 
      <label for="keywords">Keywords (eg:#facebook)(required, at least 2 characters)</label> 
      <input id="keywords" name="keywords" minlength="2" type="text" required> 
     </p> 

     <p> 

      <label for="urlType">Select Url Type :(required)</label> 
      <select name="urlType" id="urlType"> 
       <option value="">Select Url Type...</option> 
       <option value="0">Server Image</option> 
       <option value="1">Server Video</option> 
       <option value="2">YouTube Video</option> 
       <option value="3">Vimeo Video</option> 
       <option value="4">Facebook Image</option> 
       <option value="5">Facebook Video</option> 
       <option value="6">Instagram Image</option> 
       <option value="7">Instagram Video</option> 
       <option value="-1">Other</option> 
      </select> 
     </p> 

     <p> 


      <label for="postType"> Select Post Type :(required)</label> 
      <select name="postType" id="postType"> 
       <option value="">Select Post Type...</option> 
       <option value="0">Normal</option> 
       <option value="1">Featured</option> 
       <option value="2">Sponsored</option> 

      </select> 
     </p> 
     <p> 


      <label for="category"> Select Category :(required)</label> 
      <select name="category" id="category"> 
       <option value="0">Select Category...</option> 

      </select> 
     </p> 



     <p> 
      <input type="hidden" name="action_type" id="action_type_id"/> 
      <input type="hidden" name="id" id="p_id"/> 
<!--   <a href="javascript:void(0);" class="btn btn-warning" onclick="$('#postForm').slideUp();">Cancel</a> 
      <a href="javascript:void(0);" class="btn btn-success" onclick="userAction('add')">Add User</a>--> 
      <input type="button" name="Submit" id="Submit" value="Submit" onclick="userAction('add')"> 


     </p> 

    </fieldset> 

    <div class="result" id="result"></div> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script> 

     $(document).ready(function(){ 
      getCategories(); 
     }); 

     function getCategories() { 

      $.ajax({ 
       type: "POST", 
       url: 'getCategories.php', 
       dataType: 'text', 
       async: false, 
       cache: false, 
       success: function (result) { 

        $('#category').html(result); 
       } 
      }); 
     } 
     function userAction(type,id){ 

      var statusArr = {add:"added",edit:"updated",delete:"deleted"}; 

      if (type == 'add') { 

       $('#action_type_id').val(type); 
       $('#p_id').val(id); 
      } 
      $.ajax({ 
       type: 'POST', 
       url: 'addPost.php', 
       data: $('#postForm').serialize(), 
       success:function(report){ 
        // replace data to report 
        $(".result").html(report); 

        $("#postForm").trigger('reset'); 
       } 
      }); 
     } 

    </script> 
</form> 
<script> 
    $("#postForm").validate(); 
</script> 
</body> 
</html> 

도와주세요은

+0

edi 귀하의 질문에 수정 된 코드를 사용하십시오. 정답은 이미 아래에 게시되어 있으므로 혼란을 초래할 수 있습니다. – Sparky

답변

1

참조를 필요로 JQuery와 유효성을

<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script> 

그런 다음 플러그인을 초기화, 데모 예를 필요 -

$('#postForm').validate({ 
    submitHandler: function (form) { // for demo 
     userAction('add'); 
    } 
}); 

, 당신은 onsubmit 발사하는 onclick을 제거

데모 submitHandler

에서 userAction를 호출 할 필요를 http://jsfiddle.net/xs5vrrso/

+0

버튼을 입력하지 않고도 작동하지 않습니다. if 형식은 유효성 검사를 보여 주지만 아직 제출되지 않은 빈 양식을 제출합니다. 편집 된 질문을 확인하십시오. – Sid

+0

고맙습니다. – Sid

0

하는 버튼의 유형은 '제출'해야 제출 .. 감사합니다. 희망이 도움이됩니다.

+0

하지만 아약스 함수가 ​​작동하지 않습니다. userAction 함수 안에 유효성 검사 코드를 넣고 시도했는데 유효성 검사가 표시되지만 버튼 양식의 onclick은 addPost.php에 제출되지 않습니다 – Sid