簡體   English   中英

一個的多個值<option>

[英]Multiple values for one <option>

我正在努力獲得更好的js知識,並且遇到了一些問題。 我想給出一個多個選項的選項,從我能找到的其他地方,帶分割的數組是最好的解決方案。 但我無法讓它發揮作用。 腳本的一面應該根據選定的destionation計算價格,而另一面是destinaton上的名稱。

<form name="ORDER" method="post" >
<select name="destination" id="destination_trV">
<OPTION VALUE="10,Cannes"> Cannes</option>
</form>

我希望一部分抓住“10”來使用這個計算目的,另一部分抓住“戛納”來寫。

var dest_1 = (document.getElementById("destination_trV").value);
var vari_1 = dest_1.split(",",1);
var vari_2 = dest_1.split(",",1,2);

這應該寫出“10”

document.getElementById("linje5").innerHTML="Priceclass: " + vari_1 + "<br>";

這應該寫出“戛納”

document.getElementById("linje6").innerHTML="Destination: " + vari_2 + "<br>";

但這不起作用:)

拆分不能像MDN拆分那樣工作

string.split([separator][, limit])

只做一次拆分

var vals = dest_1.split(",");
var vari_1 = vals[0];
var vari_2 = vals[1];

更好的方法是使用數據屬性。

如果其中一個值包含一個字符,會發生什么? 您需要某種形式的編碼來保留原始數據。 您最好將這些值拆分為單獨的[data-*]屬性 ,而不是嘗試將多個值綁定到單個屬性中

...
<option value="Cannes" data-destination="Cannes" data-price-class="10">Cannes</option>
...

這樣,當您需要值時,可以選擇元素並單獨獲取屬性值:

(function () {
    var opt,
        destination,
        priceClass;
    opt = document.getElementById("destination_trV");
    destination = opt.getAttribute('data-destination');
    priceClass = opt.getAttribute('data-price-class');
    document.getElementById('linje5').innerHTML = 'Priceclass: ' + priceClass + '<br>';
    document.getElementById('linje6').innerHTML = 'Destination: ' + destination + '<br>';
}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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