Используя зависит с плагином Проверки jQuery

Недостаточно просто установить пакет, необходимо импортировать и использовать его. Глядя на документацию для array.prototype.flat , выясняется, что если вы хотите добавить функцию в прототип массива, вам нужно сделать где-то в вашем приложении:

import flat from 'array.prototype.flat';
flat.shim();

7
задан Glenn Slaven 19 December 2008 в 01:04
поделиться

8 ответов

Using the "ignore" option (http://docs.jquery.com/Plugins/Validation/validate#toptions) might be the easiest way for you to deal with this. Depends on what else you have on the form. For i.e. you wouldn't filter on disabled items if you had other controls that were disabled but you still needed to validate for some reason. However, if that route doesn't work, using an additional class to filter on (adding and removing with your checkboxes) should get you to where you want to go, but easier.

I.e.

        $('form').validate({
            ignore: ":disabled",
            ...
        });
11
ответ дан 6 December 2019 в 10:54
поделиться

Не следует ли проверять поле после отключения / включения?

jQuery('#ItemList :checkbox').click(function(event) {
        var textBox = jQuery(this).siblings(':text');

        if (!jQuery(this).attr("checked")) {
                textBox.attr('disabled', 'disabled');
                textBox.val('');
        } else {
                textBox.removeAttr('disabled');
                textBox[0].focus();
        }
        textBox.valid();    
});
0
ответ дан 6 December 2019 в 10:54
поделиться

Я не попробовал плагин блока проверки допустимости, но то, что шоу сообщения splitsecond звучат мне как двойное, связывает, как Вы называете свои редакторы связей? Если Вы связываете в функциональной попытке, развязывающей перед запуском, как так:

$('#ItemList :checkbox').unbind("click");
...Rest of code here...
0
ответ дан 6 December 2019 в 10:54
поделиться

Я не знаю, является ли это тем, для чего Вы шли..., но не будет изменение .required к .wasReq (как заполнитель для дифференциации этого от того, которое, возможно, не требовалось бы) при установке флажка, делают то же самое? Если это не проверяется, поле не требуется - Вы могли также removeClass (число) для устранения ошибки там.

Насколько я знаю, даже если поле отключено, правила относились к нему, все еще, ну, в общем, применяются. С другой стороны, Вы могли всегда пробовать это...

// Removes all values from disabled fields upon submit
$(form).submit(function() {
   $(input[type=text][disabled=disabled]).val();
});
0
ответ дан 6 December 2019 в 10:54
поделиться

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

На самом деле, это сводится к required: '# OneSelected: checked' . Это делает поле, о котором идет речь, обязательным, только если выражение истинно. В демонстрации, если вы отправляете страницу сразу, она работает, но когда вы устанавливаете флажки, форма не может быть отправлена, пока отмеченные поля не будут заполнены некоторыми данными. Вы все равно можете поместить вызов .valid () в обработчик кликов флажка, если хотите, чтобы вся форма проверялась при нажатии.

(Кроме того,

4
ответ дан 6 December 2019 в 10:54
поделиться

зависит параметр не работает правильно, я полагаю, что документация устарела. Мне удалось заставить эту работу так:

required : function(){ return $("#register").hasClass("open")}
2
ответ дан 6 December 2019 в 10:54
поделиться

У меня была точно такая же проблема.

Я решил эту проблему, установив вызов обработчика события изменения переключателя valid () во всей форме.

Сработало отлично. Другие вышеперечисленные решения не помогли мне.

0
ответ дан 6 December 2019 в 10:54
поделиться

Следуя ответу @Collin Allen:

Проблема в том, что если снять флажок с поля, когда видно сообщение об ошибке, сообщение об ошибке не исчезает.

Я решил эту проблему, удалив сообщение об ошибке при отключении поля.

Возьмите демо Коллина и внесите следующие изменения в процесс включения/выключения:

jQuery('#ItemList :checkbox').click(function()
{
    var jqTxb = $(this).siblings(':text')
    if ($(this).attr('checked'))
    {       
        jqTxb.removeAttr('disabled').focus();
    }
    else
    {
        jqTxb.attr('disabled', 'disabled').val('');
        var obj = getErrorMsgObj(jqTxb, "");
        jqTxb.closest("form").validate().showErrors(obj);
    }
});
function getErrorMsgObj(jqField, msg)
{
    var obj = {};
    var nameOfField = jqField.attr("name");
    obj[nameOfField] = msg;
    return obj;
}

Вы видите, что я удалил сообщение об ошибке из поля при его отключении

И если вы беспокоитесь о $("form").validate(), не делайте этого! Это не ревалидация формы, это просто возвращает объект API валидации jQuery.

1
ответ дан 6 December 2019 в 10:54
поделиться
Другие вопросы по тегам:

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