JQuery Validate () специальная функция - PullRequest
0 голосов
/ 10 апреля 2010

Я использую плагин jQuery validate() для некоторых форм, и он отлично работает. Единственное, что у меня есть поле ввода, которое требует специального процесса проверки. Вот как это происходит:

Подключаемый модуль jQuery validate вызывается в domready для всех обязательных полей.

Вот пример для ввода:

<li>
    <label for="nome">Nome completo*</label>
    <input name="nome" type="text" id="nome" class="required"/>
</li>

А вот как я называю свою специальную функцию:

<li>
    <span id="sprytextfield1">
        <label for="cpf">CPF* (xxxxxxxxxxx)</label>
        <input name="cpf" type="text"  id="cpf" maxlength="15" class="required" />
        <span class="textfieldInvalidFormatMsg">CPF Inv&aacute;lido.</span>
    </span>
</li>

И в нижней части файла я вызываю функцию Spry:

<script type="text/javascript">
    <!--
        var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1","cpf");
    //-->
</script>

Конечно, я вызываю файлы Spry CSS и JavaScript в разделе head, а также мой special-validate.js.

Когда я просто использую плагин jQuery validate() и нажимаю кнопку отправки, страница автоматически возвращается к первому ошибочно введенному полю ввода и показывает тип ошибки (не число, не действительный адрес электронной почты и т. 1019 *

Но с этой новой функцией эта функция «возврата к первой ошибке», конечно, не работает, потому что функция validate() видит все это хорошо.

Я уже добавил правило для другой формы (о загрузке картинок), и оно выглядит так:

$("#commentForm").validate({
    rules: {
        foto34: {
            required: true,
            accept: "jpg|png|gif"
        }
    }
});

Теперь мой вопрос: как я могу добавить специальную функцию проверки как правило всего процесса проверки?

Вот страница, чтобы понять это лучше: текст ссылки и специальное поле первое: CPF.

Надеюсь, я четко объяснил свою проблему.

1 Ответ

0 голосов
/ 16 апреля 2010

Я отвечу на свой вопрос, как только что нашел решение. Я добавил функцию JavaScript, чтобы проверить мой номер cpf (бразильский идентификационный номер) как раз перед тем, как DOM готов к открытию, вот так:

jQuery.validator.addMethod(
    "cpf",
    function (valor){
        ...
    },
    "CPF inv&aacute;lido"
);

и вот мой DOM готов:

$(document).ready(function(){
    $("#commentForm").validate({
        rules: {
            campocpf: {
                required:true,
                cpf:true
            },
        }
    });
});

Если это заинтересует некоторых бразильцев, я могу показать всю функцию, которая выполняет проверку CPF (проверено с моим собственным номером, работает). У меня также есть еще один номер CNPJ (бразильский номер для компаний).

...