jQuery проверить правильность размещения ошибок - PullRequest
4 голосов
/ 22 февраля 2011

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

По сути, я пытаюсь нацелиться и заменить содержимое моего существующего ввода [label] с моим сообщением об ошибке вместо того, чтобы полагаться на поведение плагина validate по умолчанию, т.е.добавив еще один [ярлык] к DOM выше или ниже моего поля ввода.

Вот форма, ничего особенного!

<form id="loginForm" action="testing.htm">

<label for="username">Username</label>
    <input id="username" name="username" type="text">

<label for="password">Password</label>
    <input id="password" name="password" type="text">

<label for="clientid">Client ID</label>
    <input id="clientID" name="clientID" type="text">

<input id="submitButton" name="submitButton" type="submit" value="Login">

... и вотскриптинг

<script type="text/javascript">

$("#loginForm").validate({

    rules: {
        username: "required",
        password: {
            required: true,
            digits: true
        },

        clientID: "required"
        },

    messages: {
        username: "Please enter your username",
        password: "Please enter your password",
        clientID: "Please enter a client ID"            
    },

    errorPlacement: function(error, element) {},        

});

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

errorPlacement: function(error, element) {
    error.insertBefore( element );
}

Любой совет по этому поводу был бы великолепен!Я начинаю вырывать свои волосы; o (

ура Декабрь

1 Ответ

1 голос
/ 12 декабря 2011

Вы должны быть в состоянии сделать что-то подобное в вашем обратном вызове.

$('label[for="' + element.attr("id") + '"]').text(error.text());

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

...