我在 C# 文件后面的 ASP.NET 代码中创建复选框。我在将控件添加到页面之前添加了一个属性值,因此 ASP 将属性添加到复选框和文本标签周围的范围。它看起来像这样:
<span data-bind="visible: showCheckBox(this)">
<input id="" type="checkbox" name="ctl00$MainContent$SecondaryForm$ctl00" value="1">
<label for="">Outside Source</label>
</span>
我有一个用 Knockout.js 编写的名为 showCheckBox() 的函数。它根据紧接其前面的下拉列表中所选项目的值确定是否应显示目标复选框。例如,如果下拉列表中选中的项的值为 1,则对应值为 1 的目标复选框将可见。该函数如下所示:
function showCheckBox(span) {
var value = span.firstChild.value;
return value == reason();
}
reason() 是保存所选下拉列表项值的 View 模型变量。 无论我做什么,我都无法正确发送复选框的值。它始终未定义。
请您参考如下方法:
此 HTML 中的第一个 child 实际上是一个 textNode,如果找到它,firstChild 将返回它。这些是它返回的实际字符:"↵ "(一个回车和一个空格)。
您可以使用 firstElementChild属性代替:
function showCheckBox(span) {
var value = span.firstElementChild.value;
return value == reason();
}
此外,不要忘记检查 firstElementChild 的支持表。
