JQuery Проверка сообщений об ошибках не на своем месте

0

У меня есть форма, которая проверяется с помощью Jquery Validate. Форма содержит 2 флажка с тем же именем, из которых по крайней мере один должен быть выбран. Для этого я использую.validate() в имени флажков вместе с правилом: required ".

Хотя я могу успешно выполнить проверку (например, сообщения об ошибках появляются, когда не выбраны флажки), сообщения об ошибках отображаются после первого флажка, что нарушает мое форматирование.

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

HTML (выдержка):

<form id='BizAddItem' name='BizAddItem' method='post' action='additemprocess.php' enctype='multipart/form-data' novalidate='novalidate'>

        //More input elements above

        <div class='BizAddItemDetails'>
            <label for='BizFulfilment'>Order Fulfilment:</label>
            <input type='checkbox' id='BizFulfilment' name='BizFulfilment[]'>Delivery &nbsp
            <input type='checkbox' id='BizFulfilment' name='BizFulfilment[]'>In-Store Pickup
            <span></span>
        </div>
        //More input elements below

</form>

Код jQuery (Extract):

$('#BizAddItem').validate({

    errorElement:"span",
    errorPlacement:function(error,element){

        error.insertAfter(element);

    },

    rules:{

        //More items above

        'BizFulfilment[]':{

            required:true
        },

    },

    messages:{

        //More items above

        'BizFulfilment[]':{

            required:"Please select at least one option"
        },
    },

        submitHandler:function(form){

        form.submit();

        }

})

Любая помощь, оказанная, будет оценена по достоинству. Благодарю!

Теги:
validation
checkbox

1 ответ

1
Лучший ответ

Попробуй это....

 errorPlacement:function(error, element)
        {
            if($(element).attr("name")=="BizFulfilment[]")
            {
                $(element).parent().append(error);
            }else
            {
            $(error).insertAfter(element);
            }   
        },
  • 0
    Если я правильно понял ваш код, вы проверяете ошибки для флажков (BizFuliflment), а затем добавляете сообщение об ошибке к родителю (в данном случае содержащий div)? Если так, почему не вставьте Afterfter работают для флажков?
  • 0
    insertAfter означает после первого флажка. (Здесь между двумя флажками). Так что используйте $ (element) .parent (). append (error);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню