2014-04-07 71 views
0

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

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

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

谢谢,

Praveen。

回答

0

仅仅使用HTML中的select来实现'ComboBox'是不可能的。你将不得不做一个解决方案来实现这一点。像这样的东西可能是一个开始:

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/