2014-09-04 92 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();明確你想要的數據。