提问者:小点点

Stickit不会保存自动完成字段中的值


我已经按照stickit文档中的建议,在初始化函数中插入了autocomplete。

几乎是hello world示例:

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;
    }
});

因此,问题在于,每当用户填写表单并通过单击“自动完成”值自动复制邮政编码时,它不会保存到“模型”属性中<代码>另存为ja而不是java

然而,在自动完成的选项上用键盘向下滚动,这些值被正确地设置为模型的属性。保存为java


共1个答案

匿名用户

对于类型为的绑定DOM元素上的更改输入keyup事件,stikit绑定确实绑定了事件侦听器。

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

在自动完成的选择事件回调中,我在元素上显式触发更改事件。您还可以配置事件:[自动完成选择]而不是选择回调。