获取纸张下拉菜单的选定值

Get selected value of paper-dropdown-menu

我正在使用 Polymer 的 paper-dropdown-menu 作为我项目的下拉菜单。现在我想在用户从下拉列表中选择一个选项时获取所选选项的值。

这是 HTML 结构

<paper-dropdown-menu label="Color" class="text-color-labels">
    <paper-dropdown class="dropdown">
        <core-menu class="menu" id="textColor">
            <paper-item value="#000000">Black</paper-item>
            <paper-item value="#522A19">Dark Brown</paper-item>
            <paper-item value="#7D331E">Light Brown</paper-item>
            <paper-item value="#EDCCBA">Tan</paper-item>
            <paper-item value="#B89325">Old Gold</paper-item>
            <paper-item value="#B7A967">Vegas Gold</paper-item>
            <paper-item value="#29753A">Kelly Green</paper-item>
        </core-menu>
    </paper-dropdown>
</paper-dropdown-menu>

我尝试使用此代码获取值:

$("body").on("core-select", ".text-color-labels", function(){
    var selectedItem = document.querySelector('#textColor').selectedItem;
    var selectedColor = selectedItem.textContent;
    console.log(selectedColor); //gives Black, Dark Brown, Light Brown etc
})

但它没有给我下拉菜单的值。如何获得?

这样更新您的事件处理程序:

$("body").on("core-select", ".text-color-labels", function(e) {
    var selectedItem = e.target.selected,
        selectedColor = selectedItem.textContent;
    console.log(selectedColor); //gives Black, Dark Brown, Light Brown etc
})

在 Polymer 1.0 中,您可以在 paper-dropdown-menu 中使用 on-iron-select 属性。例如:

<paper-dropdown-menu label="Color" class="text-color-labels" on-iron-select="_itemSelected">

聚合函数:

  _itemSelected : function(e) {
    var selectedItem = e.target.selectedItem;
    if (selectedItem) {
      console.log("selected: " + selectedItem.innerText);
    }
  },
<paper-dropdown-menu label="Color" class="text-color-labels" on-iron-select="_itemSelected">

如果你想要选择的项目值:

_itemSelected : function(e) {
    var selectedItem = e.target.selectedItem;
    if (selectedItem) {
        console.log("selected: " + selectedItem.value);
    }
}