将文本从表单 Select-Option 传递到文本输入字段
Pass the text from a form Select-Option to a text input field
我想在用户进行选择时将表单 Select-Option 的文本部分(不是值)传递给同一表单中的隐藏文本输入字段。
我已经探索了我在研究中发现的一些 java 和 PHP 'examples',但其中 none 似乎对我有用。
我已经发布了表格的原始示例,看看是否有人可以引导我找到水。任何帮助都将不胜感激。
HTML
<html>
<head>
</head>
<body>
<form action="fruitBasket.php" method="post" enctype="multipart/form-data">
<select id="fruitSelector" name="fruitSelector">
<option value="0" selected="selected" disabled="disabled">Select Fruit</option>
<option value="1">Grapes</option>
<option value="2">Strawberries</option>
<option value="3">Peaches</option>
<option value="4">Blueberries</option>
</select>
<br>
<br>
<input type="text" class="hiddenField" name="hiddenField" placeholder="Selected fruit appears
here.">
</form>
</body>
</html>
好吧,如果你想传递文本部分,你也应该将名称添加为值
---
code
---
<option value="Grapes">Grapes</option>
<option value="Strawberries">Strawberries</option>
---
code
---
这不像获取 selected 选项的值那么容易,它可以简单地检索为 selectElement.value
,但一点也不难。
selectElement.options
将为您提供 select 元素内所有选项的数组。
您会发现 selected 选项的索引为 selectElement.selectedIndex
.
话虽如此,您可以像这样访问 selected 选项:selectElement.options[selectElement.selectedIndex]
.
最后,你可以这样得到text
属性:selectElement.options[selectElement.selectedIndex].text
代码如下:
// THIS CONSTANT REPRESENTS THE <select> ELEMENT
const theSelect = document.getElementById('fruitSelector')
// THIS LINE BINDS THE input EVENT TO THE ABOVE select ELEMENT
// IT WILL BE EXECUTED EVERYTIME THE USER SELECTS AN OPTION
theSelect.addEventListener('input', function() {
// THIS IS HOW YOU GET THE SELECTED OPTION'S TEXT
let selectedOptText = theSelect.options[theSelect.selectedIndex].text
// FINALLY, THIS COPIES THE ABOVE TEXT TO THE INPUT ELEMENT:
document.querySelector('.hiddenField').value = selectedOptText;
})
<form action="fruitBasket.php" method="post" enctype="multipart/form-data">
<select id="fruitSelector" name="fruitSelector">
<option value="0" selected="selected" disabled="disabled">Select Fruit</option>
<option value="1">Grapes</option>
<option value="2">Strawberries</option>
<option value="3">Peaches</option>
<option value="4">Blueberries</option>
</select>
<br>
<br>
<input type="text" class="hiddenField" name="hiddenField" placeholder="Selected fruit appears
here.">
</form>
我想在用户进行选择时将表单 Select-Option 的文本部分(不是值)传递给同一表单中的隐藏文本输入字段。
我已经探索了我在研究中发现的一些 java 和 PHP 'examples',但其中 none 似乎对我有用。
我已经发布了表格的原始示例,看看是否有人可以引导我找到水。任何帮助都将不胜感激。
HTML
<html>
<head>
</head>
<body>
<form action="fruitBasket.php" method="post" enctype="multipart/form-data">
<select id="fruitSelector" name="fruitSelector">
<option value="0" selected="selected" disabled="disabled">Select Fruit</option>
<option value="1">Grapes</option>
<option value="2">Strawberries</option>
<option value="3">Peaches</option>
<option value="4">Blueberries</option>
</select>
<br>
<br>
<input type="text" class="hiddenField" name="hiddenField" placeholder="Selected fruit appears
here.">
</form>
</body>
</html>
好吧,如果你想传递文本部分,你也应该将名称添加为值
---
code
---
<option value="Grapes">Grapes</option>
<option value="Strawberries">Strawberries</option>
---
code
---
这不像获取 selected 选项的值那么容易,它可以简单地检索为 selectElement.value
,但一点也不难。
selectElement.options
将为您提供 select 元素内所有选项的数组。
您会发现 selected 选项的索引为 selectElement.selectedIndex
.
话虽如此,您可以像这样访问 selected 选项:selectElement.options[selectElement.selectedIndex]
.
最后,你可以这样得到text
属性:selectElement.options[selectElement.selectedIndex].text
代码如下:
// THIS CONSTANT REPRESENTS THE <select> ELEMENT
const theSelect = document.getElementById('fruitSelector')
// THIS LINE BINDS THE input EVENT TO THE ABOVE select ELEMENT
// IT WILL BE EXECUTED EVERYTIME THE USER SELECTS AN OPTION
theSelect.addEventListener('input', function() {
// THIS IS HOW YOU GET THE SELECTED OPTION'S TEXT
let selectedOptText = theSelect.options[theSelect.selectedIndex].text
// FINALLY, THIS COPIES THE ABOVE TEXT TO THE INPUT ELEMENT:
document.querySelector('.hiddenField').value = selectedOptText;
})
<form action="fruitBasket.php" method="post" enctype="multipart/form-data">
<select id="fruitSelector" name="fruitSelector">
<option value="0" selected="selected" disabled="disabled">Select Fruit</option>
<option value="1">Grapes</option>
<option value="2">Strawberries</option>
<option value="3">Peaches</option>
<option value="4">Blueberries</option>
</select>
<br>
<br>
<input type="text" class="hiddenField" name="hiddenField" placeholder="Selected fruit appears
here.">
</form>