【问题标题】:KnockoutJS: Posting only visible form elementsKnockoutJS:仅发布可见的表单元素
【发布时间】:2025-12-06 13:35:01
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery knockout.js


    【解决方案1】:

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

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

    【讨论】:

      最近更新 更多