Javascript 如何在更改第二个选择选项时使用不同的属性

Javascript 如何在更改第二个选择选项时使用不同的属性,javascript,php,html,Javascript,Php,Html,我试图通过更改两个不同的选择选项来更改输入框的值 第一个选择框是产品类型,选项上有两个不同的数据属性:数据价格和数据价格 第二个选择框pay_type用于在数据价格或数据价格之间进行选择,以更新lprice的值 这就是我尝试过的: var sp=document.getElementById('select_product'); var lp=document.getElementById('lprice'); var count=document.getElementById('count'

我试图通过更改两个不同的选择选项来更改输入框的值

第一个
选择
框是
产品类型
,选项上有两个不同的数据属性:
数据价格
数据价格

第二个选择框
pay_type
用于在
数据价格
数据价格
之间进行选择,以更新
lprice
的值

这就是我尝试过的:

var sp=document.getElementById('select_product');
var lp=document.getElementById('lprice');
var count=document.getElementById('count');
var fp=document.getElementById('price');
var pt=document.getElementById('paytype');
所选变量类型=pt.options[pt.selectedIndex];
sp.onchange=函数(){
所选变量=sp.options[sp.selectedIndex];
如果(所选类型===1){
lp.value=selected.getAttribute('data-price');
}否则{
lp.value=selected.getAttribute('data-price_c');
}
fp.value=“”;
};
sp.onchange();
count.onchange=函数(){
fp.value=lp.value*count.value;
}

精选产品
产品1
产品2
产品3
薪酬类型:
现金
部
单一价格:
计数:
全价:

我希望我从代码和解释中正确地低估了您需要做的事情:

您的第一个问题是,您在onchange函数之外选择了
类型,因此在onchange函数中没有得到更改的选项

第二种情况是,您试图将值
1和2
与元素进行比较,而没有实际从元素中提取这些值(在
所选类型上缺少
.value

我假设您还需要更新
支付类型
更改以及
选择产品
上的值,因此在本例中,没有技巧将两个HTML选择包装到一个div中
div id=“wrapper”
,如果其中任何一个发生更改,它将侦听两个选择并调用函数。现在您可以在
wrapper.onchange
上调用它

我还建议您将您的计算
fp.value=lp.value*count.value
在这个函数中,在这些元素发生变化时更新总价,所以我将您的
计数:
包装到
包装div

希望这有帮助

var sp=document.getElementById('select_product');
var lp=document.getElementById('lprice');
var count=document.getElementById('count');
var fp=document.getElementById('price');
var pt=document.getElementById('paytype');
var wrapper=document.getElementById('wrapper');
wrapper.onchange=函数(){
所选变量=sp.options[sp.selectedIndex];
所选变量\u type=pt.options[pt.selectedIndex].value;
如果(所选类型=“1”){
lp.value=selected.getAttribute('data-price');
} 
如果(所选类型=“2”){
lp.value=selected.getAttribute('data-price_c');
}
fp.value=“”;
fp.value=lp.value*count.value;
};
wrapper.onchange()

精选产品
产品1
产品2
产品3
薪酬类型:
现金
部
单一价格:
计数:
全价:

首先,如果您需要使用==或更好的===,那么JS中的single=就是分配符号。所以你的if语句一开始没有做任何事情。另外,请用示例数据制作HTML,这样就可以品尝JS了。这对每个人来说都比较容易。如何创建一个最小的、可重复的示例,并获得想要的结果。