我有<select>
个<option>
个,我正在尝试将所选选项设为值<input type="hidden">
。
这是我的代码:
<form id="selector" name="selector" action="" method="get">
<label>Number of players: </label><select form="selector" id="selectelement">
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input type="hidden" id="numofplayers" />
<label> Board size: </label><input type="number" id="board_size" maxlength="2" style="max-width: 20px;" name="board_size" min="3" max="20" />
<label> Sequence to win: </label><input type="number" id="win_size" maxlength="1" style="max-width: 10px;" name="win_size" min="3" max="9" />
<input type="submit" name="submit" value="Go" />
</form>
我试过了:
function goform()
{
this.form.elements["numofplayers"].value = document.getElementById('selectelement').selectedIndex.innerHTML;
}
并在表格标签中我这样做:
<form onsubmit="goform()" id="selector" name="selector" action="" method="get">
我该怎么做?
感谢。
编辑:对不起,我解决了,显然你可以通过这样做获得所选选项的价值:
var x = document.getElementById("selectelement").value;
非常感谢。
答案 0 :(得分:1)
发布前搜索。无论如何,请参阅:Retrieving the text of the selected <option> in <select> element
在你的情况下做:
function getSelectedValue(elementId) {
var elt = document.getElementById(elementId);
if (elt.selectedIndex == -1)
return null;
return elt.options[elt.selectedIndex].value;
}
this.form.elements["numofplayers"].value = getSelectedValue('selectelement');
你应该可以从那里出发。
顺便说一下,你为什么要这样做?您应该能够在服务器端收集selectelement
变量的值,因为您正确填充值
答案 1 :(得分:0)
每次选项列表更改时,使用onchange
事件分配值:
document.getElementById("selectelement").onchange = function() {
//For values (<option value='1'>1</option>)
document.getElementById("numofplayers").value = this.value;
//Actual option text:
document.getElementById("numofplayers").value = this.options[this.selectedIndex].text;
}