7

我想在 JavaScript 中将 Polymer paper-dropdown-menu 重置为初始状态,因此没有选择任何内容,所以它看起来像这样:

纸张下拉菜单未选择任何内容

我可以在 paper-dropdown-menu 内的 paper-menu 标签中添加一个 id 并在 JavaScript 中访问它并选择它的选定索引:

document.getElementById("accountTypeMenu").selected = 1;

但是,我只能选择一个可用的项目,因此该数字需要为 0 或更大。我无法将其设置为 -1 以不选择任何内容以直观地将其返回到初始状态,但我可以将所选状态记录为我刚刚设置的状态。我尝试更改的其他值选择为空且未定义。

这是我用于纸张下拉菜单的 html:

<paper-dropdown-menu 
id="accountTypeDropdown"
selected-item="{{selectedItem}}"
selected-item-label="{{selected}}"
label='&#65290;Account type' 
style="width:50%;"
noink 
no-animations>

    <paper-menu id="accountTypeMenu"
                class="dropdown-content"
                onmouseup="requiredMenuFieldSelected('accountType')">
                        <template is="dom-repeat"
                                  items="{{accountTypes}}"
                                  as="accountType">
                            <paper-item value="[[accountType.id]]">[[accountType.name]]</paper-item>
                        </template>
    </paper-menu>

</paper-dropdown-menu>

<input is="iron-input" 
       name="accountType" 
       type="hidden" 
       value$="[[selectedItem.value]]">
4

3 回答 3

9

它是一个现成的唯一领域。因此,您可能必须使用 Polymer 提供的函数来设置仅就绪值。试试下面

document.getElementById("accountTypeDropdown")._setSelectedItem({});

如果上述方法不起作用,请尝试以下其他变体

document.getElementById("accountTypeDropdown")._setSelectedItem(null);
document.getElementById("accountTypeDropdown")._setSelectedItem();
于 2015-10-21T23:52:15.090 回答
4

现在似乎更好用<paper-listbox></paper-listbox>

有了它,您可以简单地设置selectednull

<paper-dropdown-menu label="Type">
    <paper-listbox class="dropdown-content" selected="{{myObj.type}}" attr-for-selected="value" id="list">
        <paper-item value="0">Type 0</paper-item>
        <paper-item value="1">Type 1</paper-item>
    </paper-listbox>
</paper-dropdown-menu>

然后在JavaScript

this.$.list.selected = null;
于 2018-02-24T09:13:08.313 回答
1

您可以手动触发事件:

document.querySelector("#accountTypeDropdown")._onIronDeselect();
于 2015-12-23T16:10:48.393 回答