jQuery –如何禁用页面上的所有控件

由于某种原因,我不得不禁用客户端页面上的所有控件。因此,我已经使用jQuery实现了它:

下面的jQuery代码将在单击名为“ btnDisable”的按钮时被调用,并为页面上的所有控件设置“ disabled”属性,这将依次禁用包括按钮“ btnDisable”的所有控件。

$(document).ready(function() {
 $("#btnDisable").click(function(e) {
 $("*").attr("disabled", "disabled");
 e.preventDefault();
 });
 });

但是代码存在一个问题,即现在没有方法或事件可以处理以启用控件。
要处理此问题,可以使用2个单独的按钮,也可以使用同一个按钮来启用和禁用控件。若要对两个操作使用相同的按钮,请使用切换事件,而不是单击事件。“切换”将两个或多个处理程序绑定到匹配的元素,以在单击时执行。

因此,使用切换时,需要指定2个不同的事件处理程序。您还可以指定两个以上的事件处理程序。如果提供了两个以上的处理程序,则。toggle()将在所有这些中循环。例如,如果有三个处理程序,则将在第一次单击,第四次单击,第七次单击等时调用第一个处理程序。

因此,在第一个事件处理程序中,
首先将禁用属性设置为所有控件。
之后,从按钮中删除禁用的属性。
并将按钮的文本设置为“ Enable”。

第二个事件处理程序,
首先从所有控件中删除禁用的属性。
并将按钮的文本设置为“禁用”。

$(document).ready(function() {
$("#btnDisable").toggle(function(){
$("*").attr("disabled", "disabled");
$(this).removeAttr("disabled");
$(this).val("Enable");
}, function(){
$("*").removeAttr("disabled");
$(this).val("Disable");
});
 });