2017-10-10 2 views
0

J'ai référé les documents & débordement de pile pour ce problème où j'ai trouvé quelques solutions & même j'ai essayé de manipuler en conséquence, mais ceux-ci travaillent pour moi. Donc finalement j'ai posté ceci ici.

Lorsque je clique soumettre son directement aller submitHandler & pas valider avec respectivement la méthode personnalisée définie select_not_default & i essayé de mettre une alerte dans cette méthode personnalisée, mais il n'appelle pas comme ça signifie quelque chose de mal avec la coutume méthode ou jquery, y compris l'ordre ou la version jquery j'utilise.

S'il vous plaît aidez-moi à trouver où je me trompe. tellement confus des deux derniers jours.

C'est l'ordre que j'ai inclus les plug-ins de validation jquery &:

<script type="text/javascript" src="http://192.168.1.8/cruise_booking/application/assets/js/lib/jquery-1.11.0.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/additional-methods.js"></script> 

est en dessous du formulaire HTML:

<form action="http://192.168.1.8/cruise_booking/booking/availability" method="post" id="availability_form"> 
<!-- SIDEBAR AVAILBBILITY --> 
<div class="reservation-sidebar_availability bg-gray"> 

    <!-- HEADING --> 
    <h2 class="reservation-heading">YOUR RESERVATION</h2> 
    <!-- END/HEADING --> 
<select class="awe-select" name="source" id="source"> 
    <option value="0">Source</option> 
    <option value="1">Goa</option> 
    <option value="3">Mumbai</option> 
</select> 
<select class="awe-select" name="destination" id="destination"> 
    <option value="0">Destination</option> 
    <option value="2">Goa</option> 
    <option value="4">Mumbai</option> 
</select> 
<select class="awe-select" name="month" id="month"> 
    <option value="0">Month</option> 
    <option value="Oct/2017">Oct/2017</option> 
    <option value="Nov/2017">Nov/2017</option> 
</select> 
<dddc id="date_dd_container"> 
<select class="awe-select" name="date" id="date"> 
    <option value="0">Dates</option> 
    <option value="1">2017-10-12 09:30:00</option> 
</select> 
</dddc> 
<select class="awe-select" name="adults" id="adults"> 
    <option value="0">Adults</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 
<select class="awe-select" name="children" id="children"> 
    <option value="0">Children</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 
<select class="awe-select" name="infants" id="infants"> 
    <option value="0">Infants</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 
    <div class="vailability-submit"> 
     <input type="submit" name="search_btn" class="awe-btn awe-btn-13" value="Search"> 
    </div> 
</div> 
<!-- END/SIDEBAR AVAILBBILITY --> 
</form> 

est sous le code pour valider le formulaire.

$.validator.addMethod("select_not_default", function(value, element) { 
      var d = parseInt(value); 
      alert(d); 
      if(d == 0) 
      { 
       return false;   
      } 
      else 
       return true; 
      }); 

      $("#availability_form").validate({ 
      rules: { 
       source: { 
        required: true, 
        select_not_default: true 
       }, 
       destination: { 
        required: true, 
        select_not_default: true 
       }, 
       month: { 
        required: true, 
        select_not_default: true 
       }, 
       date: { 
        required: true, 
        select_not_default: true 
       } 
      }, 
      messages: { 
       source: { 
        required: "This field is required", 
        select_not_default: "Choose any other value than default one." 
       }, 
       destination: { 
        required: "This field is required", 
        select_not_default: "Choose any other value than default one." 
       }, 
       month: { 
        required: "This field is required", 
        select_not_default: "Choose any other value than default one." 
       }, 
       date: { 
        required: "This field is required", 
        select_not_default: "Choose any other value than default one." 
       } 
      }, 
      submitHandler: function(form) { 
        alert("hi"); 
       form.submit(); 
      } 
     }); 

Répondre

0

Ce que vous pouvez faire est d'attendre jusqu'à ce que le document is ready avec:

$(document).ready(function() { 

}); 

$(document).ready(function() { 
 
    $.validator.addMethod("select_not_default", function(value, element) { 
 
     var d = parseInt(value); 
 
     if(d == 0) 
 
     { 
 
      return false; 
 
     } 
 
     else 
 
      return true; 
 
    }); 
 

 
    $("#availability_form").validate({ 
 
     rules: { 
 
      source: { 
 
       required: true, 
 
       select_not_default: true 
 
      }, 
 
      destination: { 
 
       required: true, 
 
       select_not_default: true 
 
      }, 
 
      month: { 
 
       required: true, 
 
       select_not_default: true 
 
      }, 
 
      date: { 
 
       required: true, 
 
       select_not_default: true 
 
      } 
 
     }, 
 
     messages: { 
 
      source: { 
 
       required: "This field is required", 
 
       select_not_default: "Choose any other value than default one." 
 
      }, 
 
      destination: { 
 
       required: "This field is required", 
 
       select_not_default: "Choose any other value than default one." 
 
      }, 
 
      month: { 
 
       required: "This field is required", 
 
       select_not_default: "Choose any other value than default one." 
 
      }, 
 
      date: { 
 
       required: "This field is required", 
 
       select_not_default: "Choose any other value than default one." 
 
      } 
 
     }, 
 
     submitHandler: function(form) { 
 
      console.log("hi"); 
 
      form.submit(); 
 
     } 
 
    }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/additional-methods.js"></script> 
 

 
<form action="http://192.168.1.8/cruise_booking/booking/availability" method="post" id="availability_form"> 
 
<!-- SIDEBAR AVAILBBILITY --> 
 
<div class="reservation-sidebar_availability bg-gray"> 
 

 
    <!-- HEADING --> 
 
    <h2 class="reservation-heading">YOUR RESERVATION</h2> 
 
    <!-- END/HEADING --> 
 
<select class="awe-select" name="source" id="source"> 
 
    <option value="0">Source</option> 
 
    <option value="1">Goa</option> 
 
    <option value="3">Mumbai</option> 
 
</select> 
 
<select class="awe-select" name="destination" id="destination"> 
 
    <option value="0">Destination</option> 
 
    <option value="2">Goa</option> 
 
    <option value="4">Mumbai</option> 
 
</select> 
 
<select class="awe-select" name="month" id="month"> 
 
    <option value="0">Month</option> 
 
    <option value="Oct/2017">Oct/2017</option> 
 
    <option value="Nov/2017">Nov/2017</option> 
 
</select> 
 
<dddc id="date_dd_container"> 
 
<select class="awe-select" name="date" id="date"> 
 
    <option value="0">Dates</option> 
 
    <option value="1">2017-10-12 09:30:00</option> 
 
</select> 
 
</dddc> 
 
<select class="awe-select" name="adults" id="adults"> 
 
    <option value="0">Adults</option> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
</select> 
 
<select class="awe-select" name="children" id="children"> 
 
    <option value="0">Children</option> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
</select> 
 
<select class="awe-select" name="infants" id="infants"> 
 
    <option value="0">Infants</option> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
</select> 
 
    <div class="vailability-submit"> 
 
     <input type="submit" name="search_btn" class="awe-btn awe-btn-13" value="Search"> 
 
    </div> 
 
</div> 
 
<!-- END/SIDEBAR AVAILBBILITY --> 
 
</form>