2014-09-04 65 views
-1

我想清除并重置我的输入并使用knockoutJS选择字段。下面是它如何工作的片段,但为了简洁起见进行了编辑。如何清除或重置输入?

JavaScript代码

view = (function() 
{ 
    var self = this; 
    self.anItem = ko.observable(new AnItem()); 
    ko.applyBindings(self) 

    self.addItem = function() 
    { 
     self.somewhere.push(this); 
     self.anItem = new AnItem(); /////this doesn't clear the form 
    } 
})(); 

function AnItem() 
{ 
    this.Name= ""; 
    this.Type= 1 
} 

HTML代码

<tfoot data-bind="with: anItem"> 
    <tr> 
     <td><input type="text" data-bind="value= Name" /></td> 
     <td><select data-bind="options: pretendThisIsPopulated, optionsValue:'Value', optionsText:'Text', value:Type" /></td> 
     <td><a href="#" data-bind="click: addItem">add</a></td> 
    </tr> 

</tfoot> 
+0

你可以添加jQuery到你的项目吗?使用jQuery这将是一个简单的 – ControlAltDel 2014-09-04 18:13:48

回答

1
self.anItem(new AnItem()); //should say instead 
+1

请将解释添加到您的答案 – Huangism 2014-09-04 20:11:19

+0

设置项目作为参数,而不是设置为属性是设置可观察的正确方法 – vin 2014-11-25 17:45:27

+0

您可以编辑您的答案,以解释与您的答案 – Huangism 2014-11-25 18:00:22

0

您可以清除那些这样。

编辑

view = (function() 
{ 
    var self = this; 

    var AnItem = function (name,type) 
    { 
     var $this = this; 
     this.Name = ko.observable(name | ""); 
     this.Type = ko.observable(type | 1); 
    }; 

    self.anItem = ko.observable(new AnItem("Name",1)); 
    ko.applyBindings(self) 

    self.addItem = function() 
    { 
     self.somewhere.push(this); 
     self.anItem = new AnItem("",1); 
    }; 

})(); 

使用self.addItem();明确你想要的数据。