2013-04-25 30 views
0

我正在使用金字塔構建web應用程序,但Knockout的行爲有所不同。我有一個表格:敲除在金字塔中表現不正確

 <div data-bind="with: $root.itemToAdd" style="display: none;"> 
     <form data-bind="submit: $root.addItem"> 
      <fieldset style="border: none;"> 
       <legend >Submit Item</legend>     
       <label> 
        URL <span>{</span>   
       </label>     
        <input type="text" placeholder="URL" data-bind="value: url, valueUpdate: 'afterkeydown'" /> 
       <br /> 
       <br /> 
       <label> 
        Kwip <span>{</span>   
       </label> 
        <input type="text" placeholder="Your description please!" data-bind="value: description, valueUpdate: 'afterkeydown'" /> 
       <br /> 
       <br /> 
       <button type="button" class="submitAnItem">Add Item</button> 
       <a href="#" class="exit">Cancel</a> 
      </fieldset> 
     </form> 
    </div> 

這裏是視圖模型:

var ViewModel = function() { 

    this.itemToAdd = { 
     url: ko.observable(""), 
     description: ko.observable("") 
    }; 

    //Behavior 
    this.addItem = function() { 
     alert('Event fired'); 
    }; 
}; 

我想不通爲什麼當表單提交了「的addItem」功能,不會觸發。我在另一個框架中重新創建了這個功能,並且能夠發起這個事件。金字塔發生了什麼事情可能會干擾我的JavaScript?有人能指引我朝着正確的方向嗎?

+0

如果你使用默認的mako模板,顯然模板引擎與Knockouts語句相交不要忘記美元符號,它被保留爲bultin mako操作符$ {} – Denis 2013-04-25 11:20:46

+0

它已經很長天? :) – XGreen 2013-04-25 13:00:23

+1

它已經。 :) – rross 2013-04-25 18:31:40

回答

3

這是因爲類型按鈕按鈕不會觸發提交事件。你需要一個按鈕類型提交來觸發