2017-06-08 2 views
0

Ich möchte meine erste Seite verhindern, die nicht zur nächsten JSP-Seite navigieren sollte, wenn ein Validierungsfehler auftritt.warum der folgende Code nach der Schaltfläche "Senden" an die nächste Seite weitergeleitet wird, während der Fehler Popup ist?

index.jsp

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>date of birth validation</title> 
<script type="text/javascript"> 
     function isValidDate(date, month, year) 
     { 
      var flagDate = new Date(year, month, date); 
      if (flagDate.getFullYear() != year || flagDate.getMonth() != month || flagDate.getDate() != date) 
      { 
       return false; 
      } 
      return true; 
     } 

     function calculateDiffYear(date, month, year) 
     { 
      var cur = new Date(); 
      var diff = Math.floor((cur.getTime() - new Date(year, month, date))/(60 * 60 * 24 * 1000)); 
       diff -= Math.floor((cur.getFullYear() - year)/4); 

      return diff/365; 
     } 

     function checkBorn(sender) 
     { 
      var root = sender.form; 
      var date = root.elements['date'].value; 
      var month = root.elements['month'].value - 1; 
      var year = root.elements['year'].value; 

      if (!isValidDate(date, month, year) || calculateDiffYear(date, month, year) < 18) 
       { 
        alert("candidate should be grater than 18 years"); 
        document.form.name1.focus(); 
        return false; 
       } 

      return true; 
     } 
    </script> 

</head> 
<body> 
<form name = "form" action="./next2.jsp" method="post"> 
<center> 
<br><br><br><br> 

<br><br><br><br> 
Date of Birth : 
<select name='date' id='dayddl'> 
<option value='dd'>dd</option> 
<option value='01'>01</option> 
<option value='02'>02</option> 
<option value='03'>03</option> 
<option value='04'>04</option> 
<option value='05'>05</option> 
<option value='06'>06</option> 
<option value='07'>07</option> 
<option value='08'>08</option> 
<option value='09'>09</option> 
<option value='10'>10</option> 
<option value='11'>11</option> 
<option value='12'>12</option> 
<option value='13'>13</option> 
<option value='14'>14</option> 
<option value='15'>15</option> 
<option value='16'>16</option> 
<option value='17'>17</option> 
<option value='18'>18</option> 
<option value='19'>19</option> 
<option value='20'>20</option> 
<option value='21'>21</option> 
<option value='22'>22</option> 
<option value='23'>23</option> 
<option value='24'>24</option> 
<option value='25'>25</option> 
<option value='26'>26</option> 
<option value='27'>27</option> 
<option value='28'>28</option> 
<option value='29'>29</option> 
<option value='30'>30</option> 
<option value='31'>31</option> 
</select> 


<select name='month' id='monthddl'> 
<option value='mm'>mm</option> 
<option value='01'>01</option> 
<option value='02'>02</option> 
<option value='03'>03</option> 
<option value='04'>04</option> 
<option value='05'>05</option> 
<option value='06'>06</option> 
<option value='07'>07</option> 
<option value='08'>08</option> 
<option value='09'>09</option> 
<option value='10'>10</option> 
<option value='11'>11</option> 
<option value='12'>12</option> 
</select> 

<select name='year' id='blah'> 
<option value='yyyy'>yyyy</option> 

<option value='1995'>1995</option> 
<option value='1996'>1996</option> 
<option value='1997'>1997</option> 
<option value='1998'>1998</option> 
<option value='1999'>1999</option> 
<option value='2000'>2000</option> 
<option value='2001'>2001</option> 
<option value='2002'>2002</option> 
<option value='2003'>2003</option> 
<option value='2004'>2004</option> 
<option value='2005'>2005</option> 
<option value='2006'>2006</option> 
<option value='2007'>2007</option> 
<option value='2008'>2008</option> 
<option value='2009'>2009</option> 
<option value='2010'>2010</option> 
<option value='2011'>2011</option> 
<option value='2012'>2012</option> 
<option value='2013'>2013</option> 
<option value='2014'>2014</option> 
<option value='2015'>2015</option> 
<option value='2016'>2016</option> 
<option value='2017'>2017</option> 
</select> 

<br><br><input type ="submit" value="submit" onclick="checkBorn(this)"> 
</center> 
</form> 
</body> 
</html> 

wenn Fehler kommen dann soll die Kontrolle nicht auf der nächste jsp Seite aber die zur nächsten jsp Seite weitergeleitet wird, warum das geschieht? , Was soll ich eine Änderung an dem Code

next2.jsp machen, ist wie folgt:

  <html> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
      <title>Insert title here</title> 
      </head> 
      <body> 
      <%@ page import="java.util.Date"%> 
      <%@ page import="java.text.*"%> 
      <% 
      String day = request.getParameter("date"); 
      String month = request.getParameter("month"); 
      String year = request.getParameter("year"); 
      //String date = request.getParameter("dob"); 
      out.write(day+":"+month+":"+year); 
      String date1 =year+"-"+month+"-"+day; 

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
      Date dob1 = sdf.parse(date1); 
      java.sql.Date dob2 = new java.sql.Date(dob1.getTime()); 
      out.write("<br><br>"+dob2); 

      %> 
      </body> 
      </html> 

Antwort

0

Ändern Sie den Typ von Sagen auf Taste. Senden Sie immer die Formularbuchung ein. Daher validieren Sie Ihr Formular wie folgt

<input type ="button" value="submit" onclick="checkBorn(this)"> 

Senden Sie Ihr Formular mit Javascript.

function checkBorn(sender) 
    { 
     var root = sender.form; 
     var date = root.elements['date'].value; 
     var month = root.elements['month'].value - 1; 
     var year = root.elements['year'].value; 

     if (!isValidDate(date, month, year) || calculateDiffYear(date, month, year) < 18) 
      { 
       alert("candidate should be grater than 18 years"); 
       document.form.name1.focus(); 
       return false; 
      }else{ 
       //Submit your form here 
      } 
     //return true; 
    } 
Verwandte Themen