2012-02-03 4 views
0
$('form#injuryReportSubmit').submit(function(){    
if(($('form#injuryReportSubmit textarea.description').val().length <=0) || ($('form#injuryReportSubmit select.part').val()== "choose one...") ||($('form#injuryReportSubmit select.type').val() == "choose one...") || ($('form#injuryReportSubmit select.weather').val()=="choose one...")); 
      { 
       $('div#errorMessage').show(); 
       return false; 
      }   
}); 

Le code ci-dessus est utilisé pour valider un formulaire avant qu'il ne soit soumis. Le problème est que le formulaire ne sera pas soumis même si tous les tests sont faux. Quelqu'un peut-il aider? la forme est sur une jsp et ressemble àFormulaire ne soumettant pas après validation Jquery

<form id ="injuryReportSubmit" method ="post" action="injuryReportingPage.html" > 
     <p class ="first" >Date Of Injury</p> 
     <p class ="second">Date Reported to Manager</p> 
     <input type="text" id="dateOfInjury" name="dateOfInjury">  
     <input type="text" id="dateReported" name ="dateReported"> 
     <p class ="weather">Weather</p> 
     <p class ="injuryType">Injury Type</p> 
     <p class ="bodyPart">Body Part</p> 
     <p class ="time">Time Injury Occurred</p> 
     <p class ="description">Description</p> 
     <select class ="weather" name="weather"> 
     <%if(InjuryReportController.getWeatherList() != null){ %> 
     <% for(Weather weather : InjuryReportController.getWeatherList()){%> 
     <option><%= weather.getWeatherCondition() %></option> 
     <%} }%> 
     <option >choose one...</option> 
     </select> 

     <select class ="type" name="injuryType">   
     <%if(InjuryReportController.getInjuryTypeList() != null){ %>  
     <% for(InjuryType injuryType : InjuryReportController.getInjuryTypeList()){%> 
     <option><%= injuryType.getInjuryTypeName() %></option> 
     <%} }%> 
     <option>choose one...</option> 
     </select> 

     <select class ="part" name="bodyPart">  
     <%if(InjuryReportController.getBodyPartList() != null){ %> 
     <% for(BodyPart bodyPart : InjuryReportController.getBodyPartList()){%> 
     <option><%= bodyPart.getBodyPartName() %></option> 
     <%} }%> 
     <option >choose one...</option> 
     </select> 

     <input type="text" id="timeP" name ="timeOfInjury" value="01:00 AM"> 
     <textarea class ="description" rows="120" cols="670" name="description"></textarea> 

     <input id ="report" value="Submit Report" type ="submit"> 

     </form> 

Répondre

1

Retirez le point-virgule de la fin de la ligne 5 de votre code.

Actuellement ce que vous avez est comme ceci:

if (/*your conditions*/);  // <- note the semicolon 
{ 
    ... 
    return false; 
} 

Cela signifie que le bloc avec les accolades n'est pas associée à la déclaration if et ainsi exécutera chaque fois. Évidemment puis retournant false chaque fois annule chaque soumettre.

+0

Vous avez absolument raison, je ne sais pas comment je n'ai pas vu ça ... Merci beaucoup – Cerebro

Questions connexes