如何使用jquery禁用/启用页面上的所有html按钮

如何使用jquery禁用/启用页面上的所有html按钮,jquery,button,Jquery,Button,我有很多ajax调用,我想确保在ajax调用期间没有人单击任何按钮。所以我想在任何ajax调用之前禁用所有按钮,然后在ajax调用返回后重新启用它们。我知道我可以禁用这样一个按钮: $("#buttonId").attr('disabled', 'disabled'); $("#buttonId").removeAttr('disabled'); 但是jquery中禁用/重新启用所有按钮的行是什么。我不想使用“按类选择”,因为我必须记住在所有按钮上都加上特定的类名 注意:它们都不是提交按钮

我有很多ajax调用,我想确保在ajax调用期间没有人单击任何按钮。所以我想在任何ajax调用之前禁用所有按钮,然后在ajax调用返回后重新启用它们。我知道我可以禁用这样一个按钮:

 $("#buttonId").attr('disabled', 'disabled');
 $("#buttonId").removeAttr('disabled');
但是jquery中禁用/重新启用所有按钮的行是什么。我不想使用“按类选择”,因为我必须记住在所有按钮上都加上特定的类名

注意:它们都不是提交按钮。有些用于弹出对话框,等等

<input type="button" name="button" value="Show Popup" />

您的第一项任务是定义按钮的含义。是否要禁用提交按钮?如果是,则您可以使用选择器(如果是提交按钮):

$(':submit').attr('disabled', 'disabled');
...
如果它们不是全部提交按钮,则您可以尝试使用标签类型的选择器:

$(':submit, :button').attr('disabled', 'disabled');

如果您还可以混合使用标记作为AJAX调用和普通调用,那么您需要使用类选择器来消除它们的歧义。

您的第一个任务是定义按钮的含义。是否要禁用提交按钮?如果是,则您可以使用选择器(如果是提交按钮):

$(':submit').attr('disabled', 'disabled');
...
如果它们不是全部提交按钮,则您可以尝试使用标签类型的选择器:

$(':submit, :button').attr('disabled', 'disabled');
如果您还可以混合使用标记作为AJAX调用和普通调用,则需要使用类选择器来消除它们的歧义。

您是否尝试过$(“:button”)?不过,这只适用于文字按钮。“输入将更加广泛,但也将匹配单选按钮

另外,请注意,在您的示例中,jQuery必须查找按钮(或两次查找所有按钮)。链接函数调用可以避免该问题。

您是否尝试过$(“:按钮”)?这只会查找文字按钮。“输入将更广泛,但也会匹配单选按钮。”


另外,请注意,在您的示例中,jQuery必须查找按钮(或查找所有按钮两次)。链接函数调用可以避免这个问题。

@Darin Dimitrov-它们并不都是提交的buttons@ooo,除了提交按钮之外,它们可能是什么?请在您的案例中定义按钮?锚,按钮,提交按钮,图像按钮,一个带有onclick处理程序的div。。。?如果不定义此选项,您将无法编写正确的选择器。@Darin Dimitrov-我用一个示例按钮更新了问题。很多是提交按钮,但也有很多只是type=“button”@ooo,下一个问题:您想禁用所有提交按钮和所有
input type=“button”
按钮还是只禁用其中的一部分?如果要禁用所有这些选项,可以使用
$(':submit,:button')
。如果您不想禁用某些按钮,则需要一个CSS浏览器。@Darin Dimitrov-是。另外,在你的回答中,不是“:button”(而不是“button”)吗?为什么submit和button的语法会不同?@Darin Dimitrov-它们并不都是submitbuttons@ooo,除了提交按钮之外,它们可能是什么?请在您的案例中定义按钮?锚,按钮,提交按钮,图像按钮,一个带有onclick处理程序的div。。。?如果不定义此选项,您将无法编写正确的选择器。@Darin Dimitrov-我用一个示例按钮更新了问题。很多是提交按钮,但也有很多只是type=“button”@ooo,下一个问题:您想禁用所有提交按钮和所有
input type=“button”
按钮还是只禁用其中的一部分?如果要禁用所有这些选项,可以使用
$(':submit,:button')
。如果您不想禁用某些按钮,则需要一个CSS浏览器。@Darin Dimitrov-是。另外,在您的回答中,不是“:button”(而不是“button”)吗?为什么提交和按钮的语法会不同?不是实际的答案,但我建议您在整个页面的顶部放置一个透明的
,具有非常高的
z索引
,这样用户就无法与页面上的任何元素进行交互,直到ajax调用完成。这不是一个实际的答案,但我建议您在整个页面的顶部放置一个透明的
,具有非常高的
z-index
,这样,在ajax调用完成之前,用户将无法与页面上的任何元素交互。