簡體   English   中英

如何根據選項值更改HTML選擇名稱

[英]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;

};

這是一個使用getAttributesetAttribute可能(不顯眼)解決方案。

該腳本監聽任何的點擊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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM