jQuery validation plugin multiple rules/fields

I'm trying to validate a form with jQuery, using the validation plugin, but can't seem to work out how to set multiple rules, for validating more than one field.

Here is my test script:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery.validate.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){       
        $("#test").click(function () {              
            $('#test_form').validate({
                rules: {
                    firstName: {
                        required: true
                    },
                    surname: {
                        required: true
                    }
                },
                success: function() {
                    alert('it works?');
                }
            });
        });
    });
</script>
</head>
<body>
<form id="test_form" action="" method="post">
    <fieldset>
        <legend>Create an Account</legend>
        <label for="firstName">First Name</label><br/>
        <input id="firstName" name="firstName" type="text" /><br/><br/>
        <label for="surname">Surname</label><br/>
        <input id="surname" name="surname" type="text" /><br/><br/>
        <a href="#" id="test">try me</a>
    </fieldset>
</form>
</body>
</html>

Any ideas of how I've managed to mess it up, it would be most appreciated!!

Thanks!

Answers


You need to call $("#test_form").validate(...) before the link is clicked. What's happening right now is when the link is clicked, the validation is added to the form, but not tested.

Try this:

var $form = $('#test_form');

$form.validate({
    rules: {
        firstName: {
            required: true
        },
        surname: {
            required: true
        }
    },
    success: function() {
        alert('it works?');
    }
});

$("#test").click(function(e) {
    e.preventDefault();
    $form.submit();
});

$(document).ready(function () {
    $('#Invoice').validate( {
        rules: {
            code: {
                required: true,
                int: true
            },

            price: {
                required: true,
                int: true
            }
        }
    });
});

Need Your Help

How can I use AJAX to bring bring pdfs into a div?

html ajax

Okay, in my first jump into AJAX-like behavior...

Modify div location on Zoom Mobile Safari

javascript jquery ios5 mobile-safari zoom

I'm having a very hard time preserving a div's location relative to the entire screen when a user zooms in. Basically, what I am trying to do is relocate a div to the properly calculated location m...