1

我已經在初始化函數後插入了自動完成功能,如從stickit文檔中建議的那樣。stickit不保存來自自動填充字段的值

幾乎世界你好世界的例子:

 
MyApp.Views.Form = Backbone.View.extend({ 
    el: "#my-form", 
    bindings: { 
     "#postcode_with_suburbs": { 
      observe: "postcode", 
      initialize: function($el, model, options) { 
       $el.autocomplete({ 
        source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] 
       }) 
      }, 
      onSet: function(val, options) { 
       return $("#postcode_with_suburbs").val(); 
      } 
     }, 
    }, 
    events: { 
     "click #form-submit" : "submit", 
    }, 
    initialize : function() { 
      this.listenTo(this.model, "change"); 
      this.render(); 
    }, 
    render: function() { 
     this.$el.html(JST['backbone/templates/car_insurance/form']); 
      this.stickit(); 
     return this; 
    } 
}); 

所以問題是,每當用戶填寫表單並通過autocomletes的點擊郵編它不會保存到模型屬性的自動完成值。的Saved as ja代替java

enter image description here

但是向下滾動帶鍵盤在從自動完成選項,該值已正確設置爲模型的屬性。 Saved as java

+0

這些元素很難迴應。我們看不到html標記。你能提供一個可以重現問題的jsfiddle嗎? – gentiane

回答

0

粘貼綁定確實綁定了類型爲<input>的綁定DOM元素上的change input keyup事件的事件偵聽器。使用偵聽器更新模型屬性。元素postcode_with_suburbs,在你的情況下,是輸入類型應該激發change事件,當用戶從下拉菜單中選擇一個選項時。我不知道爲什麼它不能解決這個問題。試試這個小提琴here看到的變化

select: function(event, ui) { 
    $(this).trigger("change", event); 
} 

select自動完成的事件回調,我的元素觸發更改事件明確。您也可以配置events: [autocompleteselect]而不是select回調。