如何将引用保存到表格行中的复选框?
复选框被选中后,我显示一个表单。如果表单被取消,我希望取消选中该框。如何将引用保存到表格行中的复选框?
编辑
在表形式(第二种形式),滚动到复选框,并检查一个,然后去第一种形式,点击取消按钮。向下滚动到您检查的框。
在HTML,我定义:
<input id="current-checkbox" type="checkbox" class="hidden" />
在相关联的JS我保存的当前位置:
var curRow = $(this).closest('.trow').find('input[type=checkbox]');
$("#current-row",curRow);
的console.log示出:
$("#current-checkbox")
[<input id="current-checkbox" type="checkbox" class="hidden">]
取消形式JS:
$("#cancel-email").on('click', function (e) {
debugger
e.preventDefault();
setTimeout(function() { showMessage(1, 'Emails not sent.') }, 2000);
setTimeout(function() { hideEmailElems(); }, 2000);
$("#current-checkbox").find("input[type=checkbox]").prop("checked", false).focus();
});
的console.log:
$("#current-checkbox").find("input[type=checkbox]").length
0
什么是正确的jQuery选择要找到保存的复选框?
$("#current-checkbox")
只选择一个元素(即复选框),因为它是通过id选择器。
find(selector)
方法找到子元素匹配的元素中选择匹配,所以在这种情况下$("#current-checkbox").find("input[type=checkbox]")
空,因为复选框元素没有任何子元素。
因此,你将不需要那.find()
部分。 $("#current-checkbox")
就够了。
请注意,在有效的HTML中,the id attribute必须是唯一的。所以,id选择符最多与一个元素匹配。
如何保存对表格行中复选框的引用?
您不需要保存对选中复选框的引用。您可以改用:checked
选择器从任何地方找到它。
$("#cancel-email").on('click', function(e) {
// Un-check the checked checkbox
$(".trow input[type=checkbox]:checked").prop("checked", false);
// Hide the E-Mail box
$('#main-container').hide();
});
有意义,但在实现解决方案后仍然检查该框(即使控制台显示它已执行:$(“#current-checkbox”)。prop(“checked”)false)? –
@rontornambe您可以创建一个最小的现场演示吗? –
对于迟到的编辑 - 我正在医院工作。对不起,粗糙的jsfiddle。进入治疗之前,我可能需要一段时间才能再次回复,所以请花时间。 –
我不能按照你的问题。创建一个CMVE – Amit
你不需要'.find()'语句,'id'选择器会得到一个正确的元素。 – Polyov
你可以使用$(“#current-checkbox”)。prop(“checked”,false)。 不需要使用.find()函数或.closet()函数。 –