JQuery Change () функция IE проблема - PullRequest
0 голосов
/ 11 июня 2009

У меня есть элемент управления видом asp.net, и я хочу, чтобы кнопки «Обновить / Отмена» были отключены до тех пор, пока пользователь не внесет изменение, и я попытался использовать jquery для этого. Следующий код работает в FireFox и работает в IE, когда форма открывается в режиме вставки. Тем не менее, если форма открывается в режиме редактирования (в IE) и, следовательно, заполняется при открытии страницы, кнопки отключаются на доли секунды, но затем снова включаются.

Это то, что я сейчас использую.

// Handle the document.ready event:
    $(document).ready(function() {

        // Disable the save button
        $("input.button")
            .attr("disabled", "disabled")
            .removeClass("button")
            .addClass("button-disabled");

        // Hook up event handler to enable save button when a change is made
        $("input").change(function() {
            $("input.button-disabled")
                .removeAttr("disabled")
                .removeClass("button-disabled")
                .addClass("button");
        });
        // Hook up the cancel confirmation dialog
        $(".cancelEdit").click(function() {
            showCancelConfirmation($(this));
            return false;
        });
    })

Я изменил код обработчика события включения на

$("input").bind("keypress", function() {
            $("input.button-disabled")
                .removeAttr("disabled")
                .removeClass("button-disabled")
                .addClass("button");
        });

, что решило проблему на мгновение, так как кнопки отключены, пока пользователь не введет какой-либо текст. Проблема, с которой я столкнулся при использовании этого метода, заключается в том, что кнопки не активируются, если пользователь удаляет некоторый текст (только в IE), и я также использую календарь AJAX Toolkit, и кнопки не активируются при изменении даты с его использованием.

Я знаю, что могу использовать ключевое слово 'click' в функции, чтобы активировать кнопки, как только щелкнет поле, но это не поможет с проблемой ввода календаря ajax.

Есть идеи, как мне решить эту проблему?

Заранее спасибо

1 Ответ

1 голос
/ 12 июня 2009

Хорошо, я отсортировал этот файл, прикрепив cssclass для полей ввода к строке ввода и используя keydown и change arguments - keydown активирует кнопки, если нажата кнопка удаления, и change активирует кнопки, если были внесены изменения. в том числе, если изменение производится с помощью календаря инструментария ajax.

$("input.input-box-webform").bind("keydown change", function() {
            $("input.button-disabled")
                .removeAttr("disabled")
                .removeClass("button-disabled")
                .addClass("button");
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...