我刚刚开始使用Knockout.js我的表单中有我称之为问题的元素。我根据用户选择隐藏/显示它们。当用户点击提交按钮时,我想在提交时仅发布可见问题。我有这个:
// length of Results(questionArray) is 260
var vmToPost = viewModel;
delete vmToPost.__ko_mapping__;
ko.utils.arrayForEach(vmToPost.Results(), function (question) {
if (!(vmToPost.getQuestion(question.QuestionID()).visible())) {
ko.utils.arrayRemoveItem(vmToPost.Results(), question);
}
});
util函数arrayForEach表现得很奇怪。它通过阵列非常不同地循环。我不得不点击提交按钮7次以获取所有可见元素并从util函数中退出。它不会在控制台或提琴手中抛出任何错误消息。 我究竟做错了什么。请帮忙。
答案 0 :(得分:0)
Html包含一种内置方式来跳过提交的项目。它是the disabled
attribute,可以使用带有enable
或disable
绑定的Knockout进行控制。
<div data-bind="visible: visible">
<label>Name: <input name="name" data-bind="enable: visible"></label>
</div>