将选项标签附加在不同选择标签中选择的值

时间:2019-01-08 13:17:18

标签: javascript php jquery mysql ajax

我有三个选择标签 两名球员姓名

<select >
<option value="plarer1">plarer1</option>
<option value="plarer2">plarer2</option>
</select>
<select >
<option value="plarer3">plarer3</option>
<option value="plarer4">plarer4</option>
</select>

第三个是空的且隐藏的 当我从两个选择标签中选择值时,它们可能会在第三个选择标签中同时显示值和名称

1 个答案:

答案 0 :(得分:0)

一种方法是在浏览器中使用javascript:

第一个make函数创建一个简单的HTML 'IT_Inventory' => [ 'className' => 'Cake\Database\Connection', 'driver' => 'Cake\Database\Driver\Sqlserver', 'persistent' => false, 'host' => env('DATABASE_HOST', 'versifitdev.mmsd.local'), 'username' => 'notshowingpasswordlol', 'password' => 'notshowingpasswordlol', 'database' => 'IT_Inventory', 'timezone' => 'America/Chicago', 'cacheMetadata' => true, 'log' => false, //'schema' => 'my_app', 'quoteIdentifiers' => false, ], 元素,其中包含由其标题指定的多个选项。这很简单:

select

然后创建一个创建动态下拉列表的函数。这是一个HTML function createDropdownWithTitles(...optionTitles) { const dropdown = document.createElement('select') const defaultOption = new Option('Choose', null, true, true) defaultOption.disabled = true dropdown.add(defaultOption) for (const title of optionTitles) { const option = new Option(title, title) dropdown.add(option) } return dropdown } 元素,将从其他下拉框的选定选项中动态检索其选项。

这变得更加复杂。我们需要做两件事:

  • 跟踪已经填写的下拉列表:我们在代码中将此称为select。填写完所有这些下拉菜单后,我们就可以显示动态下拉菜单了。

  • 跟踪新填写的下拉列表的内容。我们应该在动态下拉菜单中反映这些内容。

这里是代码

filledInDropdowns

然后总结一下,创建一些示例下拉列表:

function createDropdownBasedOn(...otherDropdowns) {
  const dropdown = document.createElement('select')
  dropdown.style.visibility = 'hidden'
  const filledInDropdowns = new Array(otherDropdowns.length)
  for (const [index, dropdown] of otherDropdowns.entries()) {
    dropdown.addEventListener('change', event => fillIn(event.currentTarget, index))
    filledInDropdowns[index] = false
  }
  function fillIn(dependency, index) {
    filledInDropdowns[index] = true
    dropdown[index] = new Option(dependency.value, dependency.value)
    for (const filledIn of filledInDropdowns) {
      if (filledIn === false) return
    }
    dropdown.style.visibility = 'visible'
  }
  return dropdown
}

查看一个有效的示例:

const dropdownA = createDropdownWithTitles('Player 1', 'Player 2')
const dropdownB = createDropdownWithTitles('Player 3', 'Player 4')

document.body.appendChild(dropdownA)
document.body.appendChild(dropdownB)
document.body.appendChild(createDropdownBasedOn(dropdownA, dropdownB))