![](/img/trans.png)
[英]How to change the value of HTML default <select> tag based on custom made <select> option?
[英]How to change HTML select name based on option value
我怎样才能获得期权价值。 我想根据选定的选项值更改name="<value>"
。 这样我就可以将名称值与onChange=""
一起发送给spring控制器。
我想根据选项选择值更改select name="report/leavereport/weeklysummery"
。
<select name="" onChange="document.getReportAll.submit()">
<option value="">Select Report Type</option>
<option value="report">TIME REPORT</option>
<option value="leavereport">LEAVE REPORT</option>
<option value="weeklysummery">TIME SUMMARY</option>
</select>
谢谢,
鉴于代码和现代浏览器,最短的变化是:
onChange="this.name = this.value; document.getReportAll.submit()"
......因为属性事件处理程序中, this
指的是选择元素和现代的浏览器反映期权价值为value
单选择。
将id设置为select
。
<select id="select"...>...</select>
然后设置select
元素的onchange
事件。 选择一个选项时会触发它。
如果选择器value
未定义,则浏览器不支持它,因此可以使所选元素迭代选项并检查是否包含selected
属性。 我不使用querySelector
因为较旧的浏览器可能不支持它。
var selector = document.getElementById('select');
selector.onchange = function() {
var value = this.value;
if(!value) {
for(var i = 0, op; op = selector.children[i]; i ++) {
// Check if the attribute selected is valid
if(op.getAttribute('selected')) {
value = op.value;
break;
}
}
}
this.name = value;
};
这是一个使用getAttribute
和setAttribute
可能(不显眼)解决方案。
该脚本监听任何的点击options
,然后更新的值name
的属性select
的基础上,价值value
的属性option
。
var options = document.getElementsByTagName('option'); function changeName() { var value = this.getAttribute('value'); window.alert('name = "' + value + '"'); this.parentNode.setAttribute('name',value); } for (var i = 0; i < options.length; i++) { options[i].addEventListener('click',changeName,false); }
<select name=""> <option value="">Select Report Type</option> <option value="report">TIME REPORT</option> <option value="leavereport">LEAVE REPORT</option> <option value="weeklysummary">TIME SUMMARY</option> </select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.