我有一个asp.net formview控件,我想要禁用更新/取消按钮,直到用户进行更改并且我尝试使用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日历输入问题没有帮助。
关于如何解决这个问题的任何想法?
提前致谢
答案 0 :(得分:1)
好吧,我通过将输入框的cssclass附加到输入字符串,并使用keydown和更改参数来对此进行排序 - 如果按下删除,则keydown会激活按钮,如果进行了更改,则更改会激活按钮 - 包括是否通过ajax工具包日历进行更改。
$("input.input-box-webform").bind("keydown change", function() {
$("input.button-disabled")
.removeAttr("disabled")
.removeClass("button-disabled")
.addClass("button");
});