Проблема с проверкой формы в HTML

#java #jquery #html #validation #jsp

#java #jquery #HTML #проверка #jsp

Вопрос:

Люди, у меня проблема с проверкой моей HTML-формы. В настоящее время я использую JSP (на серверной части) для извлечения данных формы и jquery для проверки данных в моем HTML-файле. Проблема в том, что когда я запускаю свой HTML на сервере (apache tomcat), мой фрагмент проверки jquery не работает, и данные просто передаются в файл JSP. Только если я удалю атрибут action из тега form, тогда выполняется код проверки, но JSP не вызывается. Вот мои HTML и JSP скрипты.

     <%@page contentType="text/html" pageEncoding="UTF-8"%>
           <%@ page import="java.io.*,java.util.*,javax.mail.*"%>
           <%@ page import="javax.mail.internet.*,javax.activation.*"%>
           <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
           <%@ page import =    "java.util.regex.Pattern,java.util.regex.Matcher,java.util.regex.*" %>


           <!DOCTYPE html>
           <html>
           <head>
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
           <title>Yay!</title>
           </head>
           <body>


           <%

            //-------------->
            String first = request.getParameter("firstname");
            String last = request.getParameter("lastname");
            String Username = request.getParameter("username");
            String Email = request.getParameter("email");
            String day = request.getParameter("date");
            String month = request.getParameter("month");
            String year = request.getParameter("year");
            String pass1 = request.getParameter("password"); 
            String pass2 = request.getParameter("confirmpassword"); 
            String date = day   '/'  month   '/'   year ;


           %>

           <%= first %><br>
           <%= last %><br>
           <%= Username %> <br>
           <%=  Email%> <br>
           <%=  date%> <br>
           <%=  pass1%> <br>
           <%=  pass2%> <br>


           </body>
           </html>
           <!-- HTML file-->
           <form class = ".form-inline"  
           method = "POST" action =       "process.jsp"

                        onSubmit="return validate(this);" name="form"  >
                            <lable><b>Name:</b></lable>

                            <input type = "text" placeholder = "first" 
                         id =   "firstname" 
                            name = "firstname"></input>
                            <input type = "text" placeholder = "last" 
                          id = "lastname"
                            name = "lastname"></input><br><br>

                            <label>Birthday:</label>
                            <div class = "date">
                                <input type = "text" placeholder = "dd" 
                            id =  "date" name = "date"></input>
                                <input type = "text" placeholder = "mm" 
                            id = "month" name = "month"></input>
                                <input type = "text" placeholder = "yy" 
                            id = "year" name="year"></input>
                                <br><br>
                            </div>


                                <div class="form-group ">

                                <label><b>User Name:</b></label>
                                <input type = "text"
                                class = "form-control"  
                                id = "username"  name="username"></input>
                                <br>

                                <label for="password">Password:</label>
                                <input type="password"
                                class="form-control"  
                                id="password" name = "password">
                                <br>

                                <label for="confirmpassword">
                                Confirm Password:</label>
                                <input type="password" 
                                class="form-control" 
                                id="confirmpassword" name = "confirmpassword">
                                <label for="email">Email:</label>
                                <input type="email" 
                                class="form-control" id="email" name ="email">
                                <br> 

                                <button type="submit" 
                                class="btn btn-primary btn-block" 
                                id = "submission"
                                value ="submit">Submit</button>
                                <script type="text/javascript">
                                /*global $*/
                                $(function(){ // JS form validation snippet.

                                        // variables are used to
                                        store  different types of
                                        regex expressions. 
                                        var ck_name = /^[A-Za-z0-9 ]{3,20}$/;

var ck_email
                       = /^([w-]  (?:.[w-] )*)@((?:[w-] .)*w[w-]   {0,66})
                        .([a-z]{2,6}(?:.[a-z]{2})?)$/i ;
                                        var ck_username = 
                                        /^[A-Za-z0-9_] {1,20}$/;
                                        var ck_password =  
                                        /^[A-Za-z0-9!@#$%^amp;*()_]{6,20}$/;
                                        var flag;
                                        $("#submission").on("click", 
                                        function validate(form){
                                            var day = $("#date").val();
                                            var month = $("#month").val();
                                            var year = $("#year").val();
                                            if ((day >= 1 amp;amp; day <= 31 ) amp;amp; 

                                              (month >= 1 amp;amp; month <= 12) amp;amp; 
                                                (year >= 1930)) {

                                                    //alert("correct date ");
                                                }
                                            else {
                                                //alert("wrong date"); 
                                            }
                                            //alert("submission active");

                       // variable extracts 
                          the  specific  user input from the form. 

                                      var firstname = $("#firstname").val(); 
                                      var lastname = $("#lastname").val(); 
                                      var email = $("#email").val(); 
                                      var username = $("#username").val(); 

                                      var password = $("#password").val(); 

                           var confirmpassword = $("#confirmpassword").val(); 

                                            var errors = [];

                                            if (!ck_name.test(firstname)) {
                         errors[errors.length] = "Your valid first Name .";
                                             }
                                              if (!ck_name.test(lastname)) {
                          errors[errors.length] = "Your valid last Name .";
                                             }
                                             if (!ck_email.test(email)) {
                          errors[errors.length] = 
                             "Yor must enter a valid email address.";
                                             }

                             if(!ck_username.test(username)) {
                                             errors[errors.length] = 

                                     "Your valid UserName no special  char .";
                                             }
                                             if  (!ck_password.test(password) )                                 {
                                     errors[errors.length] = 
                                     "Your must enter a valid Password ";
                                             }

                             if  (!ck_password.test(confirmpassword) ||
                                             password !== confirmpassword) {
                            errors[errors.length] = "password doesn't match ";
                                             }
                                             if (errors.length > 0) {
                                              reportErrors(errors);
                                              return false;
                                             }

              //$.get("process.jsp", [firstname, lastname, email, username,
                             password, confirmpassword, day, month, year]);
                                                //alert(".get() executed");
                                              return true;

                                            function reportErrors(errors){

                                  var msg = "Please Enter Valide Data...n";

                                 for (var i = 0; i<errors.length; i  ) {
                                                 var numError = i   1;

                                 msg  = "n"   numError   ". "   errors[i];
                                            }
                                             //alert(msg);
                                        }
                                    });
                                });
                                </script>
                            </div>
                    </form>
  

Комментарии:

1. где находится тег form? пожалуйста, обновите свой код должным образом, тогда только я смогу вам помочь.

2. я добавил тег form.

Ответ №1:

в вашем javascript синтаксическая ошибка, пожалуйста, проверьте ваш код должным образом, если я удалю весь ваш javscript-код, тогда я смогу выполнить проверку. проверьте мой код, и вы получите представление.

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
           <%@ page import="java.io.*,java.util.*,javax.mail.*"%>
           <%@ page import="javax.mail.internet.*,javax.activation.*"%>
           <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
           <%@ page import =    "java.util.regex.Pattern,java.util.regex.Matcher,java.util.regex.*" %>


           <!DOCTYPE html>
           <html>
           <head>
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
           <title>Yay!</title>
           </head>
           <body>


           <%
            //if(request.getParameter("btnsubmit")!=null){
            //-------------->
            String first = request.getParameter("firstname");
            String last = request.getParameter("lastname");
            String Username = request.getParameter("username");
            String Email = request.getParameter("email");
            String day = request.getParameter("date");
            String month = request.getParameter("month");
            String year = request.getParameter("year");
            String pass1 = request.getParameter("password"); 
            String pass2 = request.getParameter("confirmpassword"); 
            String date = day   '/'  month   '/'   year ;
          //  }

           %>

           <%= first %><br>
           <%= last %><br>
           <%= Username %> <br>
           <%=  Email%> <br>
           <%=  date%> <br>
           <%=  pass1%> <br>
           <%=  pass2%> <br>


           </body>
           </html>
           <!-- HTML file-->
            <script type="text/javascript">


   function validate(form) {
    alert('hi');
  }
                                </script>
           <form class = ".form-inline"  
           method = "POST" action ="index.jsp"

                        onSubmit="return validate(this);" name="form"  >
                            <lable><b>Name:</b></lable>

                            <input type = "text" placeholder = "first" 
                         id =   "firstname" 
                            name = "firstname"></input>
                            <input type = "text" placeholder = "last" 
                          id = "lastname"
                            name = "lastname"></input><br><br>

                            <label>Birthday:</label>
                            <div class = "date">
                                <input type = "text" placeholder = "dd" 
                            id =  "date" name = "date"></input>
                                <input type = "text" placeholder = "mm" 
                            id = "month" name = "month"></input>
                                <input type = "text" placeholder = "yy" 
                            id = "year" name="year"></input>
                                <br><br>
                            </div>


                                <div class="form-group ">

                                <label><b>User Name:</b></label>
                                <input type = "text"
                                class = "form-control"  
                                id = "username"  name="username"></input>
                                <br>

                                <label for="password">Password:</label>
                                <input type="password"
                                class="form-control"  
                                id="password" name = "password">
                                <br>

                                <label for="confirmpassword">
                                Confirm Password:</label>
                                <input type="password" 
                                class="form-control" 
                                id="confirmpassword" name = "confirmpassword">
                                <label for="email">Email:</label>
                                <input type="email" 
                                class="form-control" id="email" name ="email">
                                <br> 

                                <button type="submit" 
                                class="btn btn-primary btn-block" 
                                id = "submission"
                                value ="submit" name='btnsubmit'>Submit</button>

                            </div>
                    </form>