Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает remote проверка в jquery validate (https://javascript.ru/forum/jquery/15673-ne-rabotaet-remote-proverka-v-jquery-validate.html)

MaratCrash 09.03.2011 11:24

Не работает remote проверка в jquery validate
 
Всем привет.
Имеем форму:
<form id="order_form" name="order_form" action="/order/create/" method="post">
<input type="text" name="discount" id="discount" class="text" />
<input type="submit" name="submit" id="submit" class="text" />
</form>

Имеем js код:
$("#order_form").validate({
      rules: {
         "discount": {
            remote: {
                url: "/order/CheckPromo/",
                type: "post",
               async: false
            }
         }
      },
      messages: {
         "discount" : "Неверный код"
      },
      submitHandler: function(form) {
         alert('OK!');
      },
      errorPlacement: function(error, element) {
      }
    });

Вот почему-то запрос до /order/CheckPromo/ проходит отлично (пробовал возвращать и 'false' и 'true'), но НЕ устанавливается статус ошибки (class="error") у поля discount. Помогите пожалуйста.

MaratCrash 10.03.2011 14:19

Неужели никто не знает, в чем причина? Странно, плагин то известный.

cmygeHm 10.03.2011 17:23

я немного иначе делал:
создаю правило
	jQuery.validator.addMethod(
                    "discountRule", // имя правила
                    function(value, element) { // функция, которая вернет результат проверки.
							//В ней можешь выполнить ajax-запрос на свой сервер
                        проверяем и возвращаем true или false
			return true;
                    }
        );


	// работаем с формой
	$("#myForm").validate({
            onkeyup: false, // в какой момент проверять правила
            submitHandler: function(form) {  // что делаем при сабмите формы
                    $(form).ajaxSubmit({
                        url: "/url/to/server_script/format/json",  // куда забмитим форму
                        success: function(msg){
                            if (msg.response=='true') { // получаем ответ от сервера
				УРА!
                            }
                            else БЯ!
                        }
                    });
            },
            rules: {
                discount: {
                    discountRule: true // означает, что от правила discountRule ожидается значение true
                }
            }
        });

MaratCrash 12.03.2011 05:54

Спасибо тебе!


Часовой пояс GMT +3, время: 23:18.