Проверка Jquery: отображение ошибки рядом с элементом, а также добавление ее в контейнер div - PullRequest
0 голосов
/ 10 июня 2011

Я пытаюсь проверить с помощью плагина проверки jquery, и ошибка отображается вдоль текстовых полей. Есть ли способ, чтобы я мог также отобразить его в контейнере div.

Я опробовал демонстрационные коды на http://jquery.bassistance.de/validate/demo/.

Код JS ниже

 $().ready(function() {

    var container = $('div.controller');
    // validate signup form on keyup and submit
    $("#signupForm").validate({
        rules: {
            firstname: "required",
            lastname: "required",
            username: {
                required: true,
                minlength: 2
            },
            password: {
                required: true,
                minlength: 5
            },
            confirm_password: {
                required: true,
                minlength: 5,
                equalTo: "#password"
            },
            email: {
                required: true,
                email: true
            },
        },
        messages: {
            firstname: "Please enter your firstname",
            lastname: "Please enter your lastname",
            username: {
                required: "Please enter a username",
                minlength: "Your username must consist of at least 2 characters"
            },
            password: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long"
            },
            confirm_password: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long",
                equalTo: "Please enter the same password as above"
            },
            email: "Please enter a valid email address"
        },

    });


});


</script>

HTML-код ниже

<div class="master_container">
        <div class="master_container_inner">

        <div class="container">

        </div>

                <form class="cmxform" id="signupForm" method="get" action="">
    <fieldset>
        <legend>Validating a complete form</legend>
        <p>
            <label for="firstname">Firstname</label>
            <input id="firstname" name="firstname" />
        </p>
        <p>
            <label for="lastname">Lastname</label>
            <input id="lastname" name="lastname" />
        </p>
        <p>
            <label for="username">Username</label>
            <input id="username" name="username" />
        </p>
        <p>
            <label for="password">Password</label>
            <input id="password" name="password" type="password" />
        </p>
        <p>
            <label for="confirm_password">Confirm password</label>
            <input id="confirm_password" name="confirm_password" type="password" />
        </p>
        <p>
            <label for="email">Email</label>
            <input id="email" name="email" />
        </p>
        <p>
            <input class="submit" type="submit" value="Submit"  />
        </p>
    </fieldset>
</form>

        </div>
    </div>

1 Ответ

1 голос
/ 13 июня 2011

Я нашел похожий вопрос в Отображать сводные и отдельные сообщения об ошибках с помощью плагина проверки jQuery .

Разница в том, что они предупреждают об ошибке. Я нашел решение своей проблемы, добавив следующее в метод validate

        showErrors: function(errorMap, errorList) {
            if (submitted) {
                var summary = "You have the following errors: \n";
                $.each(errorList, function() { summary += " * " + this.message + "\n"; });
                //alert(summary);
                $("div.container").html(summary);
                $("div.container").show();
                submitted = false;
            }
            else
            {
                $("div.container").hide();
            }
            this.defaultShowErrors();
        },          
        invalidHandler: function(form, validator) {
            submitted = true;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...