Javascript 基于用户选择问题的实时更新
我正在尝试根据用户选择创建一个动态价格字段。不幸的是,我不知道为什么我的代码不起作用。选择字段时没有显示任何内容 这是我的javascript文件的内容。基本上我有三个功能,其中两个是基于下拉选择进行输入,最后一个是检查复选框是否选中,并将值添加到总数中 我检查了所有的身份证,没有发现错误。这是我的html表单,其中有三个字段是我试图获取的数据Javascript 基于用户选择问题的实时更新,javascript,html,Javascript,Html,我正在尝试根据用户选择创建一个动态价格字段。不幸的是,我不知道为什么我的代码不起作用。选择字段时没有显示任何内容 这是我的javascript文件的内容。基本上我有三个功能,其中两个是基于下拉选择进行输入,最后一个是检查复选框是否选中,并将值添加到总数中 我检查了所有的身份证,没有发现错误。这是我的html表单,其中有三个字段是我试图获取的数据 var filling_prices=new Array(); 填充价格[“无”]=0; 填充价格[“定期家庭清洁”]=12; var filling
var filling_prices=new Array();
填充价格[“无”]=0;
填充价格[“定期家庭清洁”]=12;
var filling_durations=新数组();
填充时间[“无”]=0;
充装持续时间[“8小时”]=8;
//自定义计算
函数getServiceType(){
var servicePrice=0;
var bookingForm=document.forms[“提交属性表单”];
var selectedFilling=bookingForm.elements[“type”];
服务价格=填充价格[selectedFilling.value];
退货价格;
}
函数getServiceDuration(){
var servicePriceDuration=0;
var bookingForm=document.forms[“提交属性表单”];
var selectedFilling=bookingForm.elements[“location”];
servicePriceDuration=filling_durations[selectedFilling.value];
返回服务时间;
}
函数get洗涤剂sprice(){
var featuresPrice=0;
var theForm=document.forms[“提交属性表单”];
var ADDDDELENTS=形式元素[“特征-”];
如果(addCleanters.checked==真){
洗涤剂SPRICE=6;
}
返回洗涤剂sprice;
}
函数getTotal(){
var bookingTotalPrice=(getServiceType()*getServiceDuration())+GetDeventSprice();
var divobj=document.getElementById('totalPrice');
divobj.style.display='block';
divobj.innerHTML=“总价”+预订总价;
}
服务
选择服务类型
熨烫
一次性清洁
定期家居清洁
你需要我们工作多少小时?
期间
2小时
特征
添加洗涤剂(+6英镑)
您提供的代码有很多问题,但这里有一个正常运行的版本。查看以下问题列表,让我们知道哪些问题不清楚。这可能有助于使这个问题对其他人更有用
- 您有一个未闭合的跨度标记
- 您有一个未关闭的选择标记
- fillingPrices数组有2个索引,但用于选择它的select有4个元素
- 在js中的select上访问
得到的值是该选项的.value
属性,因此您的键处于禁用状态。值为“90”的选项应该在数组中找到“常规家庭清洁”——它们绝对不相等value
- fillingDurations具有相同的不匹配-数组的键与选择选项中的值不匹配。这里有“两个小时”作为索引,其中第一个选择的数字是88、89和90,如果没有上下文,很难调试
- 您可以声明featuresPrice,但可以尝试在GetDetectionSprice函数中设置DetectionSprice
- 没有任何东西触发总数的计算,所以我添加了一个按钮
- 在价格计算功能之外设置bookingForm一次
- 在进行计算之前,访问定价计算并将它们分别存储在getTotal函数中。这使得故障排除更加容易,因为您可以在使用组件值之前轻松地将其打印到日志中
var filling_prices=new Array();
填充价格[-1]=0;
填充价格[88]=10;
填充价格[89]=11;
填充价格[90]=12;
var filling_durations=新数组();
填充时间[-1]=0;
充装持续时间['2小时]=8;
//自定义计算
函数getServiceType(){
var servicePrice=0;
var bookingForm=document.forms[“提交属性表单”];
var selectedFilling=bookingForm.elements[“type”];
服务价格=填充价格[selectedFilling.value];
退货价格;
}
函数getServiceDuration(){
var servicePriceDuration=0;
var bookingForm=document.forms[“提交属性表单”];
var selectedFilling=bookingForm.elements[“location”];
servicePriceDuration=filling_durations[selectedFilling.value];
返回服务时间;
}
函数get洗涤剂sprice(){
var featuresPrice=0;
var theForm=document.forms[“提交属性表单”];
var ADDDDELENTS=form.elements[“features[]”;
if(addCleanters.checked==true)
{
特征值=6;
}
返回特性;
}
函数getTotal()
{
var bookingTotalPrice=(getServiceType()*getServiceDuration())+GetDeventSprice();
var divobj=document.getElementById('totalPrice');
display='block';
divobj.innerHTML=“总价”+预订总价;
}
服务
选择服务类型
熨烫
一次性清洁
定期家居清洁
你需要我们工作多少小时?
期间
2小时
特征
添加洗涤剂(+6英镑)
您提供的代码有很多问题,但这里有一个正常运行的版本。查看以下问题列表,让我们知道哪些问题不清楚。这可能有助于使这个问题对其他人更有用
- 您有一个未闭合的跨度标记
- 您有一个未关闭的选择标记
- 你们的填充物价格是多少