У меня есть элемент управления видом 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.
Есть идеи, как мне решить эту проблему?
Заранее спасибо