如何在角度材质md-autocomplete中禁用自动填充

时间:2017-08-06 10:37:28

标签: angularjs angular-material

我想为我的md-autocomplete禁用浏览器(Chrome)的自动填充功能 我还阅读了#2699但由于我的md-autocomplete中没有输入标记,我不知道在哪里应用type =“search”

有人已经实现了这个目标吗?

<div class="autocomplete" flex>
            <md-icon class="icon"  md-svg-icon="user"></md-icon>

            <md-autocomplete
                    md-no-cache="ctrl.noCache"
                    md-selected-item="ctrl.selectedUserItem"
                    md-search-text-change="ctrl.searchUserTextChange(ctrl.searchText)"
                    md-search-text="ctrl.searchUserText"
                    md-selected-item-change="ctrl.selectedUserItemChange(useritem)"
                    md-items="useritem in ctrl.querySearchUsers(ctrl.searchUserText)"
                    md-item-text="useritem.Name"
                    md-min-length="0"
                    md-menu-class="autocomplete-custom-template"
                    md-floating-label="Username">
                <md-item-template>
                 <span> {{useritem.Title}} </span>
                 <span> <strong> {{useritem.Name}}</strong>, </span>
               </md-item-template>
            </md-autocomplete>
        </div>

4 个答案:

答案 0 :(得分:1)

查看1.1.4的来源,自动填充功能肯定设置为“关闭”,类型设置为“搜索”:

      return '\
        <md-input-container ng-if="floatingLabel">\
          <label>{{floatingLabel}}</label>\
          <input type="search"\
              ' + (tabindex != null ? 'tabindex="' + tabindex + '"' : '') + '\
              id="{{ inputId || \'fl-input-\' + $mdAutocompleteCtrl.id }}"\
              name="{{inputName}}"\
              autocomplete="off"\
              ...

如果它仍然是自动填充的,那么您是否有一个忽略该设置的扩展程序或附加组件?

另外,请确保它不是缓存问题。在Chrome中,打开开发工具(F12),单击“网络”选项卡,然后选中“禁用缓存”(仅在开放工具打开时适用),然后刷新页面。

如果您正在捆绑/缩小,请确保已重新编译/提醒,并且该页面实际上正在使用正确的脚本。

答案 1 :(得分:0)

如果您使用的是angularjs,则可以在控制器页面中使用以下代码。 默认情况下,md-autocomplete将具有称为auto complete的属性,该属性设置autcomplete ==“ off”。因此,请使用以下代码覆盖。但是有一件事,如果您在同一模板中有两个md-autocomplete,它将无法正常工作。

$('input').attr("autocomplete","none");

答案 2 :(得分:0)

当我们将包裹在'no'内的输入元素的自动完成设置为<md-autocomplete>时,它将起作用。

  <md-autocomplete
                md-input-type = "search"
                md-input-name="country"
                onmouseover="this.children[0].children[0].children[1].autocomplete='no'"
                >
            </md-autocomplete>

这不是一种优雅的方法,但它确实起作用。

答案 3 :(得分:0)

它对我有用:

<md-autocomplete
...
        onfocus="this.querySelector('input').autocomplete='no'"
>