如何在SAPUI5输入字段中添加浏览器缓存自动完成?

时间:2017-03-14 05:54:05

标签: sapui5 sap-fiori

如何在SAPUI5输入字段中添加浏览器缓存自动完成功能?

我有一个带有输入字段的SAPUI5表单。我希望这些输入字段能够像其他网站一样显示浏览器历史记录中的自动填充功能。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我建议使用window.history来访问浏览器的历史记录。但是,出于安全原因,window.history不允许查看各种URL。

历史记录API在此处提供了充分的文档说明:https://developer.mozilla.org/en-US/docs/Web/API/History_API

但是,如果您可以存储要在模型中打开建议的URL,则可以避免使用window.history并简单地使用“输入”字段的建议功能。这里提供了一个示例: https://sapui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.InputSuggestionsCustomFilter/preview

答案 1 :(得分:0)

您的问题有点模糊,但我想您要启用浏览器级表单字段自动填充功能。像这个问题:Make text input fields remember previously entered data

主要问题是浏览器会在以下条件下保存有关字段值的信息:

  • 输入字段具有名称(您可以通过UI5 sap.m.Input控件的“name”属性设置输入字段的名称。)
  • 提交包含表格。

通常,您不在UI5中提交表单,因为这是一种非AJAX传递数据的方式。您可以查看此问题:Trigger autocomplete without submitting a form以解决此问题。

或者,您可以自己存储值,例如: localStorage并使用它们来填充sap.m.Input的suggestionItems聚合。

答案 2 :(得分:0)

LocalCacheSettings: function(){

            var aSelectedTokens = this.getView().byId("processOrderNo").getTokens();
            var aModelData = [];
            for(var i = 0; i < aSelectedTokens.length ; i++){
                aModelData.push({
                    "key" : i.toString(),
                    "value" : aSelectedTokens[i].getText()
                });
        jQuery.sap.storage(jQuery.sap.storage.Type.local).put("myLocalData", aModelData);


        }
            this.aProcessOrderTyped = [];
            var oLocalCacheModel = new sap.ui.model.json.JSONModel();
            jQuery.sap.require("jquery.sap.storage");
            var oStorage = jQuery.sap.storage(jQuery.sap.storage.Type.local);
            //this.aProcessOrderTyped;
            if(oStorage.get("myLocalData")){
                this.aProcessOrderTyped = oStorage.get("myLocalData");
                oLocalCacheModel.setData(this.aProcessOrderTyped);
            }
            this.getView().setModel(oLocalCacheModel, "POModel");