Только выполнить действие один раз в jQuery - PullRequest
3 голосов
/ 20 июля 2010

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

$(function () {
        $("#tabs").tabs({
            cache: true,
            load: function (event, ui) {
                $(".data-group").one('load', function () {
                    $(this).find(':text').attr('disabled', 'disabled');
                });
            },
            select: function (event, ui) {
                // Do Stuff
            }
        });
    });

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

Предложения по исправлению?

Ответы [ 2 ]

0 голосов
/ 06 августа 2010

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

0 голосов
/ 20 июля 2010

Попробуйте связать с событием show, что-то вроде «если есть данные хотя бы в одном из текстовых входов, затем включите их», например:

show: function(event, ui) {
    if($(".data-group").find(":text[value]").length) {
        $(".data-group").find(":text").removeAttr("disabled");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...