我有三个选择标签 两名球员姓名
<select >
<option value="plarer1">plarer1</option>
<option value="plarer2">plarer2</option>
</select>
<select >
<option value="plarer3">plarer3</option>
<option value="plarer4">plarer4</option>
</select>
第三个是空的且隐藏的 当我从两个选择标签中选择值时,它们可能会在第三个选择标签中同时显示值和名称
答案 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))