knockout js下拉列表,可以选择输入新值

时间:2014-04-07 18:04:34

标签: jquery knockout.js knockout-2.0

我想实现一个下拉列表,使用knock out js添加新项目选项。也就是说,用户可以从下拉列表中选择一个选项,他可以从同一下拉列表中输入新值。任何人都可以知道如何使用knockout js实现这一目标吗?

<select>
    <option>Enter new option</option>
    <option>Item1</option>
    <option>Item2</option>
    <option>Item3</option>
    <option>Item4</option>
</select>

如上面的下拉列表所示,当用户从下拉列表中选择输入新选项时,他可以输入文本。

谢谢,

普利文。

1 个答案:

答案 0 :(得分:0)

无法实现&#39; ComboBox&#39;只需在HTML中使用select即可。你必须做一个解决方案来实现它。这样的事情可能是一个开始:

HTML:

<select id="dropdown" data-bind="options: dropDownItems, value: dropDownValue">
</select>
<input id="textbox" type="text" data-bind="visible: textBoxVisible" />
<button data-bind="click: showTextBoxValue">Show Current Value</button>

JavaScript的:

function Demo(){
   var self = this;
   self.dropDownItems = ['Item1', 'Item2', 'Item3', 'Enter new option'];
   self.dropDownValue = ko.observable('one');
   self.textBoxVisible = ko.computed(function(){
      return self.dropDownValue() === 'Enter new option';
   });
   self.showTextBoxValue = function(){
      alert(self.chosenValue());
   };
   return self;         
}       

ko.applyBindings(new Demo());

点击此处查看演示:http://jsfiddle.net/K2sU4/