Расширение аккордеонной панели на неверных валидации

StackOverflow https://stackoverflow.com//questions/12693647

Вопрос

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

Если в нескольких валидациях на стороне серверов происходят в разделе «Отправить форму», есть ли что-то, что может автоматически расширить ранее минимизированную панель, которая содержит недопустимое сообщение «Валидатору»?В противном случае, как пользователю, по-видимому, в том, что форма не представляет собой допуску без причины.

Другой сценарий: скажем, у меня есть несколько панелей с помощью клиентских панелей , привязанными к входам.Если панель минимизируется (и, следовательно, вы не можете видеть ошибку Validator), есть ли способ расширить соответствующую панель, когда проверка страницы AJAX возникает на отправке?

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

Это было полезно?

Решение

Как насчет чего-то вроде этого (используя jQuery, но я уверен, что он может быть преобразован в простой JavaScript) ...

$(document).ready(function(){
    if (isPostback()){
        $.each(Page_Validators, function(index, validator) {
            if (!validator.isvalid) {
            // do something here to locate the accordion based on the validator
            // $(this) is the currently invalid validator element as a jquery object/wrapped set
            // so for example...
                $(this).parent().slideDown();
            // This assumes that the immediate parent of of the validator is the accordion which is unlikely but if you post your emitted html I can write the appropriate selector for you.  
            }
        });
    }
});
.

Потому что вы не хотите его стрелять в исходную нагрузку, вы можете использовать техник, подобную этой

Другие советы

Есть проект, созданный для этого вопроса, попробуйте посмотреть на него .... Вы также можете загрузить источник для анализа более подробной информации или использовать ту же кодовую базу, если вы хотите .... http://www.codeproject.com/articles/43397/validation-Accordion-and-radpanelbar-с помощью-ajax-an

Rich Beat меня к нему, но вот версия Vanilla JS (IE9 +):

Page_Validators
    .filter(function(v) { return !v.isvalid; })
    .forEach(function (v) { console.log(v.parentNode); });
.

Не забудьте разместить код под -tag.У меня были проблемы с использованием jQuerys document.ready и window.Onload, поскольку он может выполнить код до того, как загружен весь необходимый JavaScript из ASP.NET.

Обновление: дополнительная совместимая в браузере версия

for(var i = 0; i < Page_Validators.length; i++) {
    var validator = Page_Validators[i];
    if (!validator.isvalid) {
        console.log(validator.parentNode);
    }
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top