按钮使用knockout后添加更多输入字段

时间:2015-10-21 08:21:58

标签: javascript jquery html knockout.js

所以我显示了两个输入字段,用户可以在其中输入信息。我还有另一个按钮"添加"允许用户添加另一组两个输入字段来输入数据。

这是我目前对我所拥有的内容的看法,但我需要添加将输入字段添加到我的viewModel中的功能,以便在用户点击时可用。

jsFiddle of html

我想添加点击添加按钮的功能,如:

self.addName = function(){//return new input fields to user}

在我的html中我会<a href="#" onclick="addName()">

1 个答案:

答案 0 :(得分:2)

问题是,您需要在数组中使用observable来绑定多个输入。 你这样做:

<div class="addNames">
    <!-- ko foreach: ViewModel.values -->
    <div class="fname" >
        <input data-bind="value: $data.value" placeholder="Add your fname..." contenteditable/>
    </div>
    <!-- /ko -->
</div>
<div class="addBtn">
    <a data-bind="click: ViewModel.addValue"> Add Name</a>
</div>

和JS:

 ViewModel = {
        values: ko.observableArray([
            {value: ko.observable('initial value')}
        ]),
        addValue: function(){
            ViewModel.values.push({ value: ko.observable('')});
            ViewModel.values().forEach(function(data){
                console.log(data.value());
            });
        }
    }

    ko.applyBindings(); 

https://jsfiddle.net/x5wu7gsy/