假设我有一个包含多个表单的页面。当一个表单输入信息时,应禁用其他表单的所有元素。
我尝试使用.not()
选择除当前表单之外的所有表单,然后使用:input
选择器获取每个输入元素并将disabled
属性应用于它,但是当信息是输入时,无论使用哪种形式,所有表单中的所有元素都将被禁用。
$('form').on("input", ":input", function() {
$('form').not(this).each(function() {
$(this).find(':input').prop('disabled', true);
});
});
Fiddle Link(非常混乱,但只是为了证明) 当信息输入到顶部表单中的任何元素时,应禁用底部表单中的所有元素。
答案 0 :(得分:1)
this
是获得输入事件的输入字段。在执行not()逻辑之前,你需要让它最接近('form')。
$('form').not($(this).closest('form'))