选择所有未禁用的输入按钮

Ste*_*ven 8 jquery jquery-selectors disabled-control

我可以以某种方式选择禁用的所有输入提交元素吗?

我可以很容易地找到所有残疾人:http://api.jquery.com/disabled-selector/

$("input.saveitembtn:disabled")
Run Code Online (Sandbox Code Playgroud)

但是有什么东西:

$("input.saveitembtn:NOTdisabled")
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的解决方案是使用jQuerys .each使用它们.is来检查每一个:

$("input.saveitembtn").each(function(a){
  if( !$(this).is(':disabled') ) {
    ...
  }
});
Run Code Online (Sandbox Code Playgroud)

我发现这总是矫枉过正.jQuery中有一个简单的选择器吗?

pal*_*aѕн 17

是的,有:not()

$("input.saveitembtn:not(:disabled)")
Run Code Online (Sandbox Code Playgroud)


bil*_*oah 6

不知道为什么但是接受的答案对我不起作用.但这样做:

$("input.saveitembtn:not([disabled])");
Run Code Online (Sandbox Code Playgroud)

  • 这可能是原因(来自 [jquery-api-doc](https://api.jquery.com/disabled-selector/)):_"虽然他们的结果选择通常是相同的,但`:disabled`选择器与`[disabled]` 属性选择器略有不同;`:disabled` 匹配实际被禁用的元素,而`[disabled]` 只检查disabled 属性的存在。”_ HTML 标准认为是什么“实际禁用”表单控件可以在这里查找:[禁用属性](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#concept-fe-disabled)... (3认同)