再次加载模板后,Safari / iOS输入keyup事件不会更新。输入值缓存

时间:2015-06-18 16:01:04

标签: javascript jquery ios cordova caching

我有一个使用自动填充搜索功能的phonegap应用程序,附加到输入字段。我正在使用把手模板,使其成为一个单页的html应用程序。

当用户使用类名" .search-key"键入输入字段时,我有一个在该模板的渲染上执行的函数:

lmap

然后激发此功能:

this.render = function() {

    this.$el.html(this.template(pageNames));

    $('.content', this.$el).html(exhibitorListView.$el);

    this.$el.on('keyup', '.search-key', this.findByName);

    return this;
};

然后使用我的服务类触发遍历SQL的findByName函数,以提取与用户输入内容相匹配的结果。

第一次这很好用。但是在用户点击结果后,它会为结果提取模板页面,然后他们点击html页面中的后退按钮:

this.findByName = function() {

    var self = this;
    var searchKey = $('.search-key').val();
    var ts = Math.floor(Date.now() / 1000);

        service.findByName(searchKey,ts).done(function(exhibitors) {

            totalList = exhibitors;

            showPage(1);


        });
};

当搜索页面返回到视图时,最后输入到输入中的文本会卡在缓存中,即使它没有显示在屏幕上(我可以在控制台中看到这些值),并且当用户输入时,应用程序中未更新新文本。在每个键盘之后,该值只是重复停留在缓存中的结果,结果不会改变。

0 个答案:

没有答案