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

标签 javascript jquery backbone.js autocomplete backbone-stickit

按照 Stickit 文档的建议,我已在初始化函数后插入了自动完成功能。

几乎 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

enter image description here

但是,使用键盘向下滚动自动完成选项,这些值会正确设置为模型的属性。 另存为java

最佳答案

stickit 绑定(bind)确实绑定(bind)了 change input keyup 的事件监听器<input> 类型的绑定(bind) DOM 元素上的事件。使用监听器更新模型属性。元素postcode_with_suburbs ,就您而言,作为输入类型应该触发 change当用户从下拉列表中选择选项之一时发生的事件。我不知道为什么它没有触发该事件。试试这个 fiddle here查看更改

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

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

关于javascript - Stickit 不保存自动完成字段中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579786/

相关文章:

node.js - 从多个集合填充菜单

javascript - Backbone.js 事件绑定(bind)未触发

javascript - 将mootools中的隐藏/显示函数转换为纯javascript

当快速悬停在图像上时,Javascript 淡入/淡出效果会卡住

javascript - 如何使用 jquery 创建单击按钮时出现的 iframe

javascript - 删除图像会导致错误 undefined method `count' for nil :NilClassh Ruby on Rails

javascript - Focus() 在使用 ios 10 safari 浏览器的 ionic 中不起作用

javascript - 如何在函数内返回函数并返回显示

javascript - XML 节点和文本值。这是正确的吗?

url - 使用 .JSON 作为主干模型 URL