main wanted list FIDDLE

-add -remove -prevent duplicates -disable add button when empty

by Kohut Mykola

HTML

<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
    <div data-bind="with: idea">
        <input type="text" data-bind='value:itemToAdd, valueUpdate: "afterkeydown"' />
        <input type="button" id="addButton" data-bind="click:$parent.addItem, enable: itemToAdd" value="add" />
        <ul data-bind="foreach:allItems">
            <li> <span data-bind="text:$data"></span>

                <input type="button" data-bind="click:$root.removeItem.bind($parent, $data)" value="-" />
            </li>
        </ul>
    </div>

JavaScript

var vm = {
    idea: ko.observable({
        itemToAdd: ko.observable(""),
        allItems: ko.observableArray()
    }),

    addItem: function () {
        if (this.allItems.indexOf(this.itemToAdd()) < 0) {
            var item = this.itemToAdd();
            this.allItems.push(item);
            this.itemToAdd("");
        }
    },
    removeItem: function (data) {
        this.allItems.remove(data);
    }
};

ko.applyBindings(vm);