passshift
@passshift
php, js, html5, css

Как организовать валидацию в jQuery Form Plugin?

Здравствуйте!

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

Руководствуюсь документацией

Прописываю в опциях:

var options = {
        beforeSubmit: validate,
        success: getOrderData
    };


Ловлю submit:

$('body').on('submit', '[data-destination="order-form"]', function(e) {

        $(this).ajaxForm(options);
        
        e.preventDefault();
        return false;
    });


Ну и добавляю функцию валидации:

function validate(formData, jqForm, options) {

        var shippingMethod = $('select[name=shipping_method]').fieldValue();
        var paymentMethod = $('select[name=payment_method]').fieldValue();

        if (!shippingMethod[0] && shippingMethod <= 0) {
            alert('Необходимо указать способ доставки');
            return false;
        }

        if (!paymentMethod[0] && paymentMethod <= 0) {
            alert('Необходимо указать способ оплаты');
            return false;
        }

    }


Проблема в том что на странице несколько форм [data-destination="order-form"] и когда пытаюсь отправить форму никак не связанную с shippingMethod и paymentMethod всплывает ошибка "Необходимо указать способ доставки".

Я так понимаю это условие if (!shippingMethod[0] && shippingMethod <= 0) проверяет есть ли в форме поле shippingMethod и не равно ли оно 0, соответственно если его нет, то и проверять нечего.

Подскажите как правильно проверять данные из разных форм на одной странице данным плагином?

UPD: вопрос решился с помощью плагина jqueryvalidation.org
  • Вопрос задан
  • 2250 просмотров
Пригласить эксперта
Ответы на вопрос 1
passshift
@passshift Автор вопроса
php, js, html5, css
Форма которую отправляю:

<form data-destination="order-form" action="/ajax/ajaxorder/ArticleToOrder"  method="post">                    
 Количество <input type="text" name="quantity" value="1">
                                      
 <input type="hidden" name="order_id" value="' + order_id + '">
<input type="hidden" name="article_id" value="' + $(this).attr('id') + '">

<button type="submit">Добавить в заказ</button>
</form>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы