我知道.value
我可以获取所选项目的值,但我需要的是所选项目的名称。例如,我有这个下拉菜单包含两个项目:Class 1和Class 2. Class 1的值是50,Class 2的值是60.如果我使用DMT5.value(Class 1的值)我得到50 ,但我需要的是名称本身是“1级”。所以,我尝试使用这段代码:
var classRate = document.getElementById("DMT5")
var selectedClassRate = classRate.options[classRate.selectedIndex].text
但是,我收到一个错误:无法获取未定义或空引用的属性“text”
*编辑: 这是DMT5:
<td style="padding-right: 9px;">
<select id="DMT5" onchange="jCalculate()" style="width: 143px; padding: 2px 5px 2px 5px;">
<option></option>
<script runat="server" language="cache">
do INIT^CSP999
#import MX
set Origin=$g(%session.Data("VIPRates","Origin"))
set ID=$g(%session.Data("VIPRates","ID"))
&sql(DECLARE cCursor0 CURSOR FOR
SELECT VIPRatesItems_Class1, VIPRatesItems_Class2
INTO :r1,:r2
FROM MX.VIPRates_VIPRatesItems
WHERE VIPRates->Customer->CustCode=:ID AND VIPRatesItems_Country=:Origin)
&sql(OPEN cCursor0)
&sql(FETCH cCursor0)
WHILE SQLCODE=0{
w "<option value='"_r1_"'>Class 1</option>"
w "<option value='"_r2_"'>Class 2</option>"
&sql(FETCH cCursor0)
}
&sql(CLOSE cCursor0)
</script>
</select> </td>
</tr>
这是我的JS:
function jCalculate(){
document.getElementById("s1").style.display="inline"
document.getElementById("s2").style.display="inline"
document.getElementById("s4").style.display="inline"
var UnitMeasure="kg"
var Country=PackageT8.value
var Dm = 3500
repack = 0
Dimension=0
Volumetric=0
SelectedWt=0
OtherCharges=0
if (Country == "UNITED STATES OF AMERICA") {
var Class1 = DMT5.value
var Dm = 166
}
else if (Country == "UNITED KINGDOM") {
var Class1 = DMT5.value
Dm=6000
alert(DMT5.value)
}
else if (Country == "HONG KONG") {
var Class1 = DMT5.value
}
else if (Country == "CHINA") {
var Class1 = DMT5.value
}
else if (Country == "SINGAPORE") {
var Class1 = DMT5.value
}
if (Country == "UNITED STATES OF AMERICA") {
var Class2 = DMT5.value
}
else if (Country == "UNITED KINGDOM") {
var Class2 = DMT5.value
}
else if (Country == "HONG KONG") {
var Class2 = DMT5.value
}
else if (Country == "CHINA") {
var Class2 = DMT5.value
}
else if (Country == "SINGAPORE") {
var Class2 = DMT5.value
}
var Volumetric= (DMT1.value*DMT2.value*DMT3.value)/Dm
if (isNaN(Volumetric)) var Volumetric=0
if(Volumetric % 1 != 0) Volumetric=Volumetric+1
var Volumetric=parseInt(Volumetric)
if (DMT5.selectedIndex=="1") var ClassAmt=Class1
if (DMT5.selectedIndex=="2") var ClassAmt=Class2
var ActualWt=DMT6.value
if (isNaN(ActualWt)) var ActualWt=0
if (ActualWt>Volumetric)var SelectedWt=ActualWt
if (ActualWt<=Volumetric)var SelectedWt=Volumetric
var VAT=(SelectedWt*ClassAmt)*(12/100)
if (isNaN(VAT)) var VAT=0
if (CB1.checked==true){
var repack=3
}
var AmountDue=(SelectedWt*ClassAmt)+ VAT
if (isNaN(AmountDue)) var AmountDue=0
if (Country=="U.S.A"){
var UnitMeasure="lb/s"
}
DMT9.value=SelectedWt
DMT11.value=ClassAmt
DMT12.value=Volumetric
document.getElementById("AmountDue").innerHTML=AmountDue.toFixed(2)
document.getElementById("s1").innerHTML="Volumetric Weight: "+Volumetric + UnitMeasure
document.getElementById("s2").innerHTML="Chargable Weight: "+SelectedWt + UnitMeasure
document.getElementById("s3").style.display="inline"
//----OTHER CHARGES
if (Country=="U.S.A"){
var Volumetric=((DMT1.value * 2.54) * (DMT2.value * 2.54) * (DMT3.value * 2.54))/3500
if (isNaN(Volumetric)) var Volumetric=0
if(Volumetric % 1 != 0) Volumetric=Volumetric+1
var Volumetric=parseInt(Volumetric)
var ActualWt=DMT6.value
ActualWt=ActualWt/2.2
if(ActualWt% 1 != 0) ActualWt=ActualWt+1
var ActualWt=parseInt(ActualWt)
if (isNaN(ActualWt)) var ActualWt=0
if (ActualWt>Volumetric)var SelectedWt=ActualWt
if (ActualWt<=Volumetric)var SelectedWt=Volumetric
}
if (SelectedWt<=3 ){
if (Country=="U.S.A"){
Dimension = ((DMT1.value * 2.54) * (DMT2.value * 2.54) * (DMT3.value * 2.54))/3500
}
else{
Dimension = (DMT1.value * DMT2.value * DMT3.value)/3500
}
if (isNaN(Dimension )) var Dimension = 0
if(Dimension % 1 != 0) Dimension =Dimension +1
var Dimension =parseInt(Dimension )
if ((DMT4.value=="MMnl" || DMT4.value=="Luzon") && (Country!="U.S.A")){
var OtherCharges = 4.48
}
else if ((DMT4.value=="Visayas" || DMT4.value=="Mindanao") && (Country!="U.S.A")){
var OtherCharges = 4.62
}
else if(DMT4.value=="Luzon"){
var OtherCharges = 4.48
}
else if (DMT4.value=="Visayas" || DMT4.value=="Mindanao"){
var OtherCharges = 4.62
}
}
if (SelectedWt>=4){
if (Country=="U.S.A"){
Dimension = ((DMT1.value * 2.54) * (DMT2.value * 2.54) * (DMT3.value * 2.54))/3500
}
else{
Dimension = (DMT1.value * DMT2.value * DMT3.value)/3500
}
if (isNaN(Dimension )) var Dimension =0
if(Dimension % 1 != 0) Dimension =Dimension +1
var Dimension =parseInt(Dimension )
if ((DMT4.value=="MMnl" || DMT4.value=="Luzon") && (Country!="U.S.A")){
var OtherCharges = 2.30 * Dimension
}
else if ((DMT4.value=="Visayas" || DMT4.value=="Mindanao") && (Country!="U.S.A")){
var OtherCharges = 2.50 * Dimension
}
else if(DMT4.value=="Luzon"){
var OtherCharges = 2.30 * Dimension
}
else if (DMT4.value=="Visayas" || DMT4.value=="Mindanao"){
var OtherCharges = 2.50 * Dimension
}
}
if (Country=="U.S.A" && DMT4.value=="MMnl"){
var OtherCharges=0
}
if (PaymentT3.value=="For Pick Up"){
var OtherCharges=0
}
var AmountDue=AmountDue+OtherCharges+repack
if (isNaN(AmountDue)) var AmountDue=0
DMT7.value=VAT.toFixed(2)
DMT8.value=OtherCharges.toFixed(2)
#server(..cAmountInPeso(AmountDue.toFixed(2),DMT13.value,DMT14.value))#
document.getElementById("s4").innerHTML="Delivery Charges: USD "+ OtherCharges.toFixed(2)
}
我想我已经使用'selectedIndex'解决了这个问题。我得到所选项目的索引。
答案 0 :(得分:0)
使用getAttribute
classRate.options[classRate.selectedIndex].getAttribute("name");
答案 1 :(得分:0)
if(classRate.options.length > classRate.selectedIndex)
var selectedClassRate = classRate.options[classRate.selectedIndex].text;