输入和Crosswalk的问题

时间:2015-05-12 09:15:20

标签: html cordova ionic

我在使用输入文字的Crosswalk时遇到了一些麻烦。

当我写东西并删除它时,输入并不完全清除。因此,当我再次写一些内容时,旧文本出现在我的输入中......

例如,当我写" Cordova"并删除这个单词,然后我写了#34;是最好的",写完后#34;是"它给了我"是Cordovabest"。

在安装Crosswalk之前,我没有遇到此问题。任何解决方案?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并将其作为指令使用(现在只是制作它,因此未经过广泛测试)。在清空输入时,它会创建一个新的输入来聚焦(只是模糊(ing)没有做太多),然后重新关注原始输入:

angular.module('yourmodule')

.directive('autocomplete', function($timeout) {
    return {
        restrict: 'A',
        scope: {
            autocomplete: '='
        },
        link: function(scope, element, attrs) {

            function createInputFocus(origField) {

                origField.blur();

                var field = document.createElement('input');
                field.setAttribute('type', 'text');
                document.body.appendChild(field);

                $timeout(function() {
                    field.focus();
                    $timeout(function() {
                        field.blur();
                        document.body.removeChild(field);
                        $timeout(function() {
                             origField.focus();
                         }, 100);
                    }, 100);
                });
            }

            if (attrs.autocomplete === 'off') {

                element[0].addEventListener('keyup', function(e) {
                    if (element[0].value !== undefined && !element[0].value.length) {
                        createInputFocus(element[0]);
                    }
                    return false;
                });
            }
        }
    };
});
<input autocomplete="off">

似乎为我做了诀窍!