JQuery选择除隐藏的输入字段

前端之家收集整理的这篇文章主要介绍了JQuery选择除隐藏的输入字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在表中有一行包含一个复选框和一些其他表单字段(文本框,隐藏字段,选择列表)。当复选框被选中时,我想禁用该行中除隐藏字段之外的所有表单字段。我有这个工作的大部分,但我似乎不能忽视隐藏的领域。

在表行中选择所有表单字段,但忽略选择中的隐藏字段的最佳方法是什么?

解决方法

假设“隐藏”你的意思是type =“hidden”ie:
<input type="hidden" name="foo" value="bar">

那么你可以使用attribute not equals selector来做到这一点:

$("tr input:checkBox").click(function() {
  var cb = $(this);
  var tr = $(this).closest("tr");
  if (cb.val()) {
    tr.find("input[type!='hidden']").attr("disabled",true);
  } else {
    tr.find("input[type!='hidden']").removeAttr("disabled");
  }
});

我的一般建议是避免属性选择器。他们很慢。给一个类的相关输入(隐藏的或不隐藏的),然后在选择器中使用它。

然而,如果你的意思是“隐藏”,如“不可见”,那么使用:visible选择器:

$("tr input:checkBox").click(function() {
  var cb = $(this);
  var tr = $(this).closest("tr");
  if (cb.val()) {
    tr.find("input:visible").attr("disabled",true);
  } else {
    tr.find("input:visible").removeAttr("disabled");
  }
});

猜你在找的jQuery相关文章