Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于用户选择问题的实时更新_Javascript_Html - Fatal编程技术网

Javascript 基于用户选择问题的实时更新

Javascript 基于用户选择问题的实时更新,javascript,html,Javascript,Html,我正在尝试根据用户选择创建一个动态价格字段。不幸的是,我不知道为什么我的代码不起作用。选择字段时没有显示任何内容 这是我的javascript文件的内容。基本上我有三个功能,其中两个是基于下拉选择进行输入,最后一个是检查复选框是否选中,并将值添加到总数中 我检查了所有的身份证,没有发现错误。这是我的html表单,其中有三个字段是我试图获取的数据 var filling_prices=new Array(); 填充价格[“无”]=0; 填充价格[“定期家庭清洁”]=12; var filling

我正在尝试根据用户选择创建一个动态价格字段。不幸的是,我不知道为什么我的代码不起作用。选择字段时没有显示任何内容

这是我的javascript文件的内容。基本上我有三个功能,其中两个是基于下拉选择进行输入,最后一个是检查复选框是否选中,并将值添加到总数中

我检查了所有的身份证,没有发现错误。这是我的html表单,其中有三个字段是我试图获取的数据

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
    得到的值是该选项的
    value
    属性,因此您的键处于禁用状态。值为“90”的选项应该在数组中找到“常规家庭清洁”——它们绝对不相等
  • 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英镑)

您提供的代码有很多问题,但这里有一个正常运行的版本。查看以下问题列表,让我们知道哪些问题不清楚。这可能有助于使这个问题对其他人更有用

  • 您有一个未闭合的跨度标记
  • 您有一个未关闭的选择标记
  • 你们的填充物价格是多少