禁用除当前使用的表单中的表单元素之外的所有表单元素

时间:2017-05-29 15:47:43

标签: jquery

假设我有一个包含多个表单的页面。当一个表单输入信息时,应禁用其他表单的所有元素。

我尝试使用.not()选择除当前表单之外的所有表单,然后使用:input选择器获取每个输入元素并将disabled属性应用于它,但是当信息是输入时,无论使用哪种形式,所有表单中的所有元素都将被禁用。

$('form').on("input", ":input", function() {
    $('form').not(this).each(function() {
      $(this).find(':input').prop('disabled', true);
    });
  });

Fiddle Link(非常混乱,但只是为了证明) 当信息输入到顶部表单中的任何元素时,应禁用底部表单中的所有元素。

1 个答案:

答案 0 :(得分:1)

在该委托的情况下,

this是获得输入事件的输入字段。在执行not()逻辑之前,你需要让它最接近('form')。

$('form').not($(this).closest('form'))