JavaScript- 清除 HTML 隐藏部分中复选框的值

JavaScript- Clear the value of a checkbox in a hidden section of HTML

我有一个显示许多问题的 Web 表单。最近有报道称,当用于显示该问题的条件满足、未满足和再次满足时,表单条件部分中显示的其中一个问题会保留其值。

即如果用户对问题 1 回答 'Yes',问题 1a 和 1b 将显示,如果他们将问题 1 的答案更改为 'No',问题 1a 和 1b 将被隐藏,但如果他们更改了他们的答案将问题 1 返回 'Yes',问题 1a 和 1b 将再次显示,之前给出的答案仍处于选中状态。 1a 和 1b 应该 return 为空白/空值,一旦它们被隐藏并再次显示。

如果 (a) 和 (b) 是具有以下代码的下拉表单元素,我设法在隐藏和重新显示时将 (a) 和 (b) 部分的答案留空:

但是,表单由许多不同类型的字段组成,目前我在清除复选框列表的选定选项时遇到了一些麻烦(可以选择多个复选框) .

我尝试以与我对下拉列表所做的类似的方式清除选择:

var cb = hiddenwrapper.children('select[id^="checkbox"]');
cb.checked = false;

但是,当我通过选择 'Yes' 和 'No' 作为问题 1 的答案来隐藏并重新显示带有复选框答案的问题时,之前选中的复选框在问题出现时仍处于选中状态重新显示。

我添加的用于显示 cb.checked 的值的调试在将其设置为 false 后确实显示它的值为 false,但复选框本身实际上仍处于选中状态:

cb:

checked: false

length: 0

当问题被隐藏并重新显示时,如何清除选中的复选框?

使用 jQuery check/uncheck 复选框的正确方法是 .prop() 方法。

http://api.jquery.com/prop/

所以它应该是这样的:

var cb = hiddenwrapper.children('select[id^="checkbox"]');
cb.prop('checked', false);