【问题标题】:KnockoutJS submit binding not working with foreachKnockoutJS 提交绑定不适用于 foreach
【发布时间】:2015-08-29 20:56:21
【问题描述】:

您好,我无法将淘汰赛“提交”绑定与“foreach”绑定一起使用。 我无法弄清楚这里有什么错误。 请帮我找出我的错误。

我的视图模型是这样的:

function poReceivingModel(){
    var self = this;
    var initial_row = new poReceivingRowModel();
    self.rows = ko.observableArray([initial_row]);
    self.saveAndAdd = function(formElement){
        alert('entered into function');
        var row = new poReceivingRowModel();
        self.rows.push(row);
    };
};

function poReceivingRowModel(){
    var self = this;
    self.building = ko.observable();
    self.isele_abc = ko.observable();
    self.isele_num = ko.observable();
    self.isele_floor = ko.observable();
};

而我的 html 绑定到 'viewmodel' 是这样的:

<tbody data-bind="foreach: rows">
    <form data-bind="submit: $parent.saveAndAdd">
        <tr>
            <td>
                <!-- input field here -->
            </td>

            <td>
                <!-- input field here -->
            </td>

            <td>
                <!-- input field here -->
            </td>
            <td>
                <!-- input field here -->
            </td>
            <td>
                <button type="submit">Save and Add</button>
            </td> 
        </tr>
    </form>
</tbody>

问题是当我点击“添加和保存”按钮时,“poReceivingModel”中的“saveAndAdd”功能未被调用。 我没有收到任何警报消息。 我尝试使用“按钮”元素上的“点击”绑定来调用该函数。该函数以这种方式调用,即我收到警报消息。

更新: 在萤火虫中,我看到 form 标记在之后关闭 并且按钮不在“表单”标签中。

【问题讨论】:

  • &lt;form&gt; 元素不能嵌套在&lt;table&gt;
  • 是的,我明白了。谢谢你

标签: javascript knockout.js


【解决方案1】:

我发现 form 标签不能在 table 标签内使用。解决办法是table标签可以放在form标签里面。 如果我们不想这样做,我们可以将 table 标记更改为 div 但这可能不会给您想要的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    相关资源
    最近更新 更多