JQuery Validation Plugin Checkbox errorPlacement

голоса
1

У меня есть группа флажков, которые все имеют одинаковое имя. Все они имеют разные значения. Они являются лишь частью формы. Они не составляют всю форму. Я хочу флажки, чтобы отобразить свою ошибку после того как последний флажок этой группы.

Можно ли сделать что-то вроде этого в JQuery?

$(#myform).validate({
  errorPlacement: function(error, element) {
     var checkboxes = $(#checkboxes);
     if(checkboxes.contains(element))
        label.insertAfter(checkboxes[checkboxes.length-1]);
   },
   debug:true
 })

Как бы я идти об этом?

Спасибо,
Ян Маккалоу

Задан 06/07/2009 в 21:10
источник пользователем
На других языках...                            


4 ответов

голоса
0

Не могли бы вы сделать

if(checkboxes.contains(element)) {
  checkboxes.after(label);
}
Ответил 06/07/2009 в 21:43
источник пользователем

голоса
0

Что такое переменная «метка» делать в коде?

Вы не должны использовать переменную «ошибки»?

error.insertAfter(checkboxes[checkboxes.length-1]);
Ответил 06/07/2009 в 21:49
источник пользователем

голоса
2

Я понимаю, что это вопрос, но старше, мне нужно схожую функциональность в форме и решить ее.

Использование JQuery 1.4.2

Поэтому, учитывая следующую форму.

<form id="checkForm" method="get" action="">
<ul id="checkboxes">
    <li><input type="checkbox" name="checkOne" id="checkOne" value="1" /></li>
    <li><input type="checkbox" name="checkTwo" id="checkTwo" value="2" /></li>
    <li><input type="checkbox" name="checkThree" id="checkThree" value="3" /></li>
</ul>
<input class="submit" type="submit" value="Submit"/>

После этого вы можете сделать следующее

$("#checkForm").validate({
    rules: {
        checkOne: "required",
        checkTwo: "required",
        checkThree: "required"
    },
    errorPlacement: function(error, element) {
        if ($("#checkboxes").has(element).size() > 0) {
            error.insertAfter($("#checkboxes input:checkbox:last"));
        } else {
            error.insertAfter(element);
        }
    }
});
Ответил 14/05/2010 в 16:14
источник пользователем

голоса
1

Вот общее решение, которое будет работать со всеми флажками на этой странице. Это будет вставить сообщение об ошибке после последнего флажка группы.

$('form').validate({
    rules: {
        checkbox_group_1: {
            required: true
        },
        checkbox_group_2: {
            required: true,
        }
    },
    errorPlacement: function(error, element) {
        if (element.is(':checkbox'))
            error.insertAfter($('input[name=' + element.attr('name') + ']').last());
        else
            error.insertAfter(element);
    }
});
Ответил 18/03/2014 в 23:06
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more