简体   繁体   中英

Form Validation using jQuery Validation in Jade template

I am using nodejs and Jade for its template. I need to have form validation.

I have this in my jade file:

form(action='/course/create', method='post', id='createForm')
    table#profile
        tr
            td.left
                label(for='courseNum') Course Number *
            td.right
                input#courseNum.inputBox2(type='text', name='courseNum')
        tr
            td.left
                 label(for='courseName') Course Name *
            td.right
                 input#courseName.inputBox2(type='text', name='courseName')
        tr
            td.left
            td.right
                 button#btnSubmit(type='submit') SUBMIT

script(src='/javascript/jquery-1.9.1.js').
script(src='/javascript/jquery.validate.js').
script.
    $(document).ready(function(){
        $('#createForm').validate({
            rules: {
                courseNum : "required",
                courseName : "required"
            },
            messages : {
                courseNum : "Required!",
                courseName : "Required!"
            }
        });
    });

But I dont know why there are no errors showing up. Yes, the form do not submit when it is not valid, but there are no errors showing up. And the form also do not submit when it is valid. But when I remove the validation, It does submit. So the problem is in the validation.

What I am missing?

Here is the rendered source code from the browser:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <link rel="stylesheet" href="/stylesheets/style.css">
        <link rel="stylesheet" href="/stylesheets/reset.css">
        <link rel="stylesheet" href="/stylesheets/typography.css">
        <script src="/javascript/jquery-1.9.1.js"></script>
        <script src="/javascript/jquery.validate.js"></script>
    </head>

<body>
    <form id="createForm" action="/course/create" method="post">
        <table class="profile">
            <tr>
                <td class="left">
                      <label for="courseNum">Course Number *</label>
                </td>
                <td class="right">
                       <input id="courseNum" type="text" name="courseNum" class="inputBox2">
                </td>
            </tr>
            <tr>
                 <td class="left">
                       <label for="courseName">Course Name *</label>
                 </td>
                 <td class="right">
                        <input id="courseName" type="text" name="courseName" class="inputBox2">
                 </td>
            </tr>
            <tr>
                  <td class="left">
                  </td>
                  <td class="right">
                       <button id="btnSubmit" type="submit">SUBMIT</button>
                  </td>
            </tr>
        </table>
   </form>   
       <script>
       $(document).ready(function(){
            $('#createForm').validate({
                rules: {
                    courseNum : "required",
                    courseName : "required"
                },
                messages : {
                    courseNum : "Required!",
                    courseName : "Required!"
                }
            });
        });
        </script>
    </body>
</html>

Hope we can find I am missing.. Please help. When I remove the validation, it submits the form. But when there is validation, even it is valid or not, it doesnt submit, and no errors.

     $('#createForm').validate({
        rules: {
            courseNum : "required",
            courseName : "required"
        },
        messages : {
            courseNum : "Required!",
            courseName : "Required!"
        },
         submitHandler: function(form){
         form.submit();
        }
    });

or better

     $('#createForm').validate({
        rules: {
            courseNum  : { required:true },
            courseName : { required:true }
        },
        messages : {
            courseNum : "Required!",
            courseName : "Required!"
        },
         submitHandler: function(form){
         form.submit();
        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM