我有一个禁用所有输入的表单。在该表单中还有一个按钮,如果单击该按钮,则应该启用输入。
我知道如何使用以下内容禁用和启用输入:
$('#form :input'):prop('disabled',false)
。
这一切都很好,但我希望有一个足够抽象的实现,可以在所有具有这种切换按钮的表单中工作。因此我尝试了这个:
$('.toggle-btn').click(function(){
$(this).parents('form :input').prop('disabled','false');
}
但它不起作用。
我正在寻找一种方法来访问表单的输入字段,当它被选为父表单时。有谁知道如何去做?
答案 0 :(得分:2)
如果您的m
直接位于input
,则需要将parent
功能与find
一起使用,例如尝试此操作:
form
如果$('.toggle-btn').click(function(){
$(this).parent().find(':input').prop('disabled', false);
}
位于input
内的其他元素中,则需要使用jQuery parents
函数,如下所示:
form
答案 1 :(得分:1)
false
而非"false"
- "false"
是真实的find()
和.closest()
,我认为这比父母更好,因为它不关心按钮是否包含在任何内容中.prop
而不是:prop
$(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>