KnockoutJS:仅发布可见的表单元素

时间:2013-09-17 20:13:12

标签: javascript jquery knockout.js

我刚刚开始使用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函数中退出。它不会在控制台或提琴手中抛出任何错误消息。 我究竟做错了什么。请帮忙。

1 个答案:

答案 0 :(得分:0)

Html包含一种内置方式来跳过提交的项目。它是the disabled attribute,可以使用带有enabledisable绑定的Knockout进行控制。

<div data-bind="visible: visible">
    <label>Name: <input name="name" data-bind="enable: visible"></label>
</div>