custom-methods-demo.html 3.93 KB
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <title>Test for jQuery validate() plugin</title>

    <link rel="stylesheet" type="text/css" media="screen" href="css/screen.css"/>

    <script src="../lib/jquery.js" type="text/javascript"></script>
    <script src="../jquery.validate.js" type="text/javascript"></script>

    <script type="text/javascript">
        // extend the current rules with new groovy ones

        // this one requires the text "buga", we define a default message, too
        $.validator.addMethod("buga", function (value) {
            return value == "buga";
        }, 'Please enter "buga"!');

        // this one requires the value to be the same as the first parameter
        $.validator.methods.equal = function (value, element, param) {
            return value == param;
        };

        $().ready(function () {
            var validator = $("#texttests").bind("invalid-form.validate", function () {
                $("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors, see details below.");
            }).validate({
                debug: true,
                errorElement: "em",
                errorContainer: $("#warning, #summary"),
                errorPlacement: function (error, element) {
                    error.appendTo(element.parent("td").next("td"));
                },
                success: function (label) {
                    label.text("ok!").addClass("success");
                },
                rules: {
                    number: {
                        required: true,
                        minlength: 3,
                        maxlength: 15,
                        number: true
                    },
                    secret: "buga",
                    math: {
                        equal: 11
                    }
                }
            });

        });
    </script>

    <style type="text/css">
        form.cmxform {
            width: 50em;
        }

        em.error {
            background: url("images/unchecked.gif") no-repeat 0px 0px;
            padding-left: 16px;
        }

        em.success {
            background: url("images/checked.gif") no-repeat 0px 0px;
            padding-left: 16px;
        }

        form.cmxform label.error {
            margin-left: auto;
            width: 250px;
        }

        em.error {
            color: black;
        }

        #warning {
            display: none;
        }
    </style>

</head>
<body>

<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a>
    Demo</h1>

<div id="main">

    <form class="cmxform" id="texttests" method="get" action="foo.html">
        <h2 id="summary"></h2>

        <fieldset>
            <legend>Example with custom methods and heavily customized error display</legend>
            <table>
                <tr>
                    <td><label for="number">textarea</label></td>
                    <td><input id="number" name="number"
                               title="Please enter a number with at least 3 and max 15 characters!"/>
                    </td>
                    <td></td>
                </tr>
                <tr>
                    <td><label for="secret">Secret</label></td>
                    <td><input name="secret" id="secret"/></td>
                    <td></td>
                </tr>
                <tr>
                    <td><label for="math">7 + 4 = </label></td>
                    <td><input id="math" name="math" title="Please enter the correct result!"/></td>
                    <td></td>
                </tr>
            </table>
            <input class="submit" type="submit" value="Submit"/>
        </fieldset>
    </form>

    <h3 id="warning">Your form contains tons of errors! Please try again.</h3>

    <p><a href="index.html">Back to main page</a></p>

</div>


</body>
</html>