Проверка JQuery при динамическом изменении имен входов [duplicate]

Конечно, есть много таких подходов, как синхронный запрос, обещание, но из моего опыта я думаю, что вы должны использовать подход обратного вызова. Естественно, что асинхронное поведение Javascript. Итак, ваш фрагмент кода можно переписать немного иначе:

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            myCallback(response);
        }
    });

    return result;
}

function myCallback(response) {
    // Does something.
}
0
задан Sparky 25 September 2014 в 03:16
поделиться

2 ответа

Если вы используете produto в качестве массива, вы должны указать его индекс или он не будет работать так, как ожидалось. Попробуйте использовать produto[0], указав, что вам требуется хотя бы одно значение в вашем массиве.

-1
ответ дан Matheus Godoy 24 August 2018 в 06:33
поделиться

Два вопроса ...

1) Если ваше имя поля содержит скобки, точки или другие специальные символы, вы должны заключить это имя в кавычки.

"produto[]":  {
    required: true
}

2 ) Однако, если input не содержит это точное имя, name="produto[]", то он не будет работать, поскольку вы не можете объявить массив в опции rules в .validate(). Опция rules принимает только список имен отдельных полей.


Два возможных решения ...

1) Вы можете использовать метод .rules() следующим образом. Использование селектора jQuery «начинается с» для выбора всего массива и jQuery .each() для применения метода .rules('add') к каждому полю в этой группе.

$('[name^="produto"]').each(function() {  // select elements using "starts with" selector
    $(this).rules('add', {
        required: true,
        // other rules
    });
});

2) Однако, если только правило required, вам не нужно будет объявлять его с помощью какого-либо JavaScript вообще. Вместо этого вы можете использовать атрибут required HTML5, а плагин jQuery Validate все равно его поднимет.

<input type="text" name="produto[0]" required="required" />
<input type="text" name="produto[1]" required="required" />
<input type="text" name="produto[2]" required="required" />
<input type="text" name="produto[3]" required="required" />
<input type="text" name="produto[4]" required="required" />
2
ответ дан Sparky 24 August 2018 в 06:33
поделиться
Другие вопросы по тегам:

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