Как вручную аннулировать поля после вызова AJAX с помощью jQuery validate - PullRequest
16 голосов
/ 20 июля 2011

Примечание: приведенный ниже код предназначен только для демонстрации, и я использую плагин проверки jQuery и jQuery.

Предположим, у меня есть форма с двумя полями (адрес электронной почты и инвентарный номер):

<form action="/something" method="post" id="demoForm">
     Inventory No: <input type="text" class="required" name="inventory_no" />
     Email: <input type="text" class="required" name="email" />
     <input type='submit' value='submit' />
</form>

Привязка плагина к форме:

jQuery(function(){
    jQuery('#demoForm').validate();
});

//handle user submit

jQuery('#demoForm').bind('submit', function (e) {
    e.preventDefault();

    if (jQuery(e.target).valid()) {
        //form is valid submit request thru ajax

        jQuery.ajax({
            /*more options here*/

            success: function (data) {

                /*
                 Server process request and finds that, email is already in use
                 and inventory number is invalid
                 so it sends data in some format may pe JSon
                 with field names and message indicating errors
                 eg: Email:"Already in use"
                 InventoryNo: "Invalid Inventory No",
                 Now can i invalidate these two fields on form mannualy
                 and display the message received from server for each field
                */
            }
        });
    }
});

1 Ответ

35 голосов
/ 19 ноября 2011

Если вы знаете, какое поле является недействительным, вы можете использовать эту функцию.http://docs.jquery.com/Plugins/Validation/Validator/showErrors

var validator = $( "#myshowErrors" ).validate();
validator.showErrors({
  "firstname": "I know that your firstname is Pete, Pete!"
});

Где firstname - это свойство имени вашего поля;т.е. name="firstname".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...