[英]Dynamic Multiple Selects & Dynamic Values
我有一個問題,我想將下面的以下HTML循環並匯總為一個總和。 可以了
但是,我也希望能夠:
我在如何為每個選擇框獲取相應的標簽和選定的選項方面遇到麻煩,以便以后可以使用它們。
例如:我想知道:
HTML:
<div id = "form">
<form id = "test">
<label>Label 1/label>
<select class='pricebox' name='box1' id='box1' onchange='code(1)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
<option value='1000'>1000 Text</option>
<option value='2500'>2500 Text</option>
</select>
<br />
<label>Label 2/label>
<select class='pricebox' name='box2' id='box2' onchange='code(2)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
<option value='1000'>1000 Text</option>
<option value='2500'>2500 Text</option>
</select>
<br />
<label>Label 3/label>
<select class='pricebox' name='box3' id='box3' onchange='code(3)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
<option value='1000'>1000 Text</option>
<option value='2500'>2500 Text</option>
</select>
<br />
<label>Label 4/label>
<select class='pricebox' name='box4' id='box4' onchange='code(4)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
<option value='1000'>1000 Text</option>
<option value='2500'>2500 Text</option>
</select>
<br />
<label>Label 5/label>
<select class='pricebox' name='box5' id='box5' onchange='code(5)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
<option value='1000'>1000 Text</option>
<option value='7000'>7000 Text</option>
</select>
<br />
<label>Label 6/label>
<select class='pricebox' name='box6' id='box6' onchange='code(6)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='300'>300 Text</option>
</select>
<br />
<label>Label 7/label>
<select class='pricebox' name='box7' id='box7' onchange='code(7)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
</select>
<br />
<label>Label 8/label>
<select class='pricebox' name='box8' id='box8' onchange='code(8)'>
<option value='0'>Choose</option>
<option value='100'>100 Text</option>
<option value='250'>250 Text</option>
<option value='500'>500 Text</option>
<option value='1000'>1000 Text</option>
<option value='2500'>2500 Text</option>
</select>
<br />
<p id="demo"></p>
</form>
</div>
JS:
function code() { // forget the parameter
var elements = document.getElementsByClassName("pricebox");
var names = '';
var datvalue = 0;
var i = 0;
while(i<elements.length) {
names = elements[i].name;
elval = parseFloat(elements[i].value);
datvalue = datvalue + elval;
i++;
document.getElementById("demo").innerHTML = "<b>Total: " + datvalue + " SEK</b>";
}
}
我認為您可以以此來更新代碼功能;
// Code goes here
var data = {}
function code() { // forget the parameter
var elements = document.getElementsByClassName("pricebox");
var name;
var id;
var datvalue = 0;
Array.prototype.forEach.call(elements, function(item, index) {
id = item.id;
name = item.name;
elval = parseFloat(item.value);
datvalue = datvalue + elval;
document.getElementById("demo").innerHTML = "<b>Total: " + datvalue + " SEK</b>";
data[id] = {
name: name,
value: elval
};
});
}
然后,您可以使用全局數據變量來訪問數據。 您也可以檢查一下這個pl子 ,看看我做了什么。 順便說一下,我已經用forEach更新了代碼。
在您的for循環中,輸入以下內容:
var index = elements[i].selectedIndex;
var options = elements[i].options;
var value = options[index].value
var text = options[index].text
您可以將值,文本存儲在數組中。 我對javascript不太滿意,所以不確定如何選擇標簽。 在jquery中,我可以只使用.parent()。prev()
如果有找到,我會環顧四周並更新答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.