获取父表单jQuery

时间:2017-01-12 12:44:09

标签: javascript jquery html forms

我有一个禁用所有输入的表单。在该表单中还有一个按钮,如果单击该按钮,则应该启用输入。 我知道如何使用以下内容禁用和启用输入: $('#form :input'):prop('disabled',false)

这一切都很好,但我希望有一个足够抽象的实现,可以在所有具有这种切换按钮的表单中工作。因此我尝试了这个:

$('.toggle-btn').click(function(){
  $(this).parents('form :input').prop('disabled','false');
}

但它不起作用。

我正在寻找一种方法来访问表单的输入字段,当它被选为父表单时。有谁知道如何去做?

2 个答案:

答案 0 :(得分:2)

如果您的m直接位于input,则需要将parent功能与find一起使用,例如尝试此操作:

form

如果$('.toggle-btn').click(function(){ $(this).parent().find(':input').prop('disabled', false); } 位于input内的其他元素中,则需要使用jQuery parents函数,如下所示:

form

答案 1 :(得分:1)

  1. false而非"false" - "false"是真实的
  2. 您需要find().closest(),我认为这比父母更好,因为它不关心按钮是否包含在任何内容中
  3. 您需要.prop而不是:prop
  4. $(function() {
      $('.toggle-btn').on("click", function() {
        $(this).closest("form").find(":input").prop('disabled', false);
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form>
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="text" disabled />
      <input type="button" class="toggle-btn" />
    </form>