使用 JS 获取禁用按钮的状态
getting the status of disabled buttons with JS
我在网页上有 7 个按钮。当我点击 btn7 时,我想检查有多少按钮被禁用了。
<button type="submit" class="btn btn-home" name= "btn-save1" id= "btn-save1" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save2" id= "btn-save2" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save3" id= "btn-save3" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save4" id= "btn-save4" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save5" id= "btn-save5" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save6" id= "btn-save6" required="required">Save</button>
JS
<script type="text/javascript">
$('document').ready(function()
{
$(document).on('click', '#btn-save7', function(e){
alert('test');
})
});
</script>
如何检查是否所有按钮都被禁用?
编辑:
我已经检查了这些链接,但这些链接很高级,我不太擅长 jQuery。
JQuery select all elements without disabled AND no readonly?
http://api.jquery.com/disabled-selector/
jQuery: Checking for disabled attribute and adding/removing it?
我会在您关心的六个按钮中添加一个 class,这样您就可以 select 它们 class;我将其命名为 counted
.
然后在您的点击处理程序中,这是一个简单的 select 或与 :disabled
select 或您链接的:
var disabledCount = $(".counted:disabled").length;
如果出于某种原因您不想添加 class,并且如果按钮确实有您列出的 id
,您可以使用 attribute starts with select或者和not
过滤掉#btn-save7
:
var disabledCount = $("button[id^='btn-save']:disabled").not("#btn-save7").length;
嗨计算器,
在您的示例中,没有 btn-save7
,因此我决定创建一个。为了避免给读者造成混淆,我将其重命名为 Count Buttons
。
首先select像这样禁用属性的按钮button:disabled
接下来通过调用 length
属性.
来计算它们
查看此代码段。
$("#btn-save7").on("click", function() {
$("#num-buttons").html($("button:disabled").length + " buttons are disabled");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="submit" class="btn btn-home" name= "btn-save1" id= "btn-save1" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save2" id= "btn-save2" disabled required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save3" id= "btn-save3" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save4" id= "btn-save4" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save5" id= "btn-save5" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save6" id= "btn-save6" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save7" id= "btn-save7" required="required">Count Buttons</button>
<p id="num-buttons"></p>
我会向所有要检查的按钮添加一个特定的 class(以防万一您的网站上有更多按钮),例如:
<button class="btn btn-home checkthis" name= "btn-save1" ...></button>
<button class="btn btn-home checkthis" name= "btn-save2" ...></button>
<button class="btn btn-home checkthis" name= "btn-save3" ...></button>
...
然后将此 css class 与禁用的选择器一起使用:
$(".checkthis:disabled").length
这为您提供了 class "checkthis" 禁用按钮的数量
如果所有带有 class "checkthis" 的按钮都被禁用,这将是一个简单的检查:
if( $(".checkthis:disabled").length == $(".checkthis").length ) {
console.log("all buttons are disabled");
}
我在网页上有 7 个按钮。当我点击 btn7 时,我想检查有多少按钮被禁用了。
<button type="submit" class="btn btn-home" name= "btn-save1" id= "btn-save1" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save2" id= "btn-save2" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save3" id= "btn-save3" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save4" id= "btn-save4" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save5" id= "btn-save5" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save6" id= "btn-save6" required="required">Save</button>
JS
<script type="text/javascript">
$('document').ready(function()
{
$(document).on('click', '#btn-save7', function(e){
alert('test');
})
});
</script>
如何检查是否所有按钮都被禁用?
编辑:
我已经检查了这些链接,但这些链接很高级,我不太擅长 jQuery。 JQuery select all elements without disabled AND no readonly?
http://api.jquery.com/disabled-selector/
jQuery: Checking for disabled attribute and adding/removing it?
我会在您关心的六个按钮中添加一个 class,这样您就可以 select 它们 class;我将其命名为 counted
.
然后在您的点击处理程序中,这是一个简单的 select 或与 :disabled
select 或您链接的:
var disabledCount = $(".counted:disabled").length;
如果出于某种原因您不想添加 class,并且如果按钮确实有您列出的 id
,您可以使用 attribute starts with select或者和not
过滤掉#btn-save7
:
var disabledCount = $("button[id^='btn-save']:disabled").not("#btn-save7").length;
嗨计算器,
在您的示例中,没有 btn-save7
,因此我决定创建一个。为了避免给读者造成混淆,我将其重命名为 Count Buttons
。
首先select像这样禁用属性的按钮button:disabled
接下来通过调用 length
属性.
查看此代码段。
$("#btn-save7").on("click", function() {
$("#num-buttons").html($("button:disabled").length + " buttons are disabled");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="submit" class="btn btn-home" name= "btn-save1" id= "btn-save1" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save2" id= "btn-save2" disabled required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save3" id= "btn-save3" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save4" id= "btn-save4" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save5" id= "btn-save5" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save6" id= "btn-save6" required="required">Save</button>
<button type="submit" class="btn btn-home" name= "btn-save7" id= "btn-save7" required="required">Count Buttons</button>
<p id="num-buttons"></p>
我会向所有要检查的按钮添加一个特定的 class(以防万一您的网站上有更多按钮),例如:
<button class="btn btn-home checkthis" name= "btn-save1" ...></button>
<button class="btn btn-home checkthis" name= "btn-save2" ...></button>
<button class="btn btn-home checkthis" name= "btn-save3" ...></button>
...
然后将此 css class 与禁用的选择器一起使用:
$(".checkthis:disabled").length
这为您提供了 class "checkthis" 禁用按钮的数量 如果所有带有 class "checkthis" 的按钮都被禁用,这将是一个简单的检查:
if( $(".checkthis:disabled").length == $(".checkthis").length ) {
console.log("all buttons are disabled");
}