Javascript 选择框选项保持更改 选择金额。。。 $2000 $3000 $4000 $5000 两年 6年 一生 函数updateCost(){ var率=0; if(document.formName.plan[p].选中){ if(值('coverage user').indexOf('registered')>-1){ rate=getRate(); } 工资周期=1; document.formName.cost.value=格式货币((汇率)*付款周期); } }

Javascript 选择框选项保持更改 选择金额。。。 $2000 $3000 $4000 $5000 两年 6年 一生 函数updateCost(){ var率=0; if(document.formName.plan[p].选中){ if(值('coverage user').indexOf('registered')>-1){ rate=getRate(); } 工资周期=1; document.formName.cost.value=格式货币((汇率)*付款周期); } },javascript,drop-down-menu,Javascript,Drop Down Menu,我有这两个选择框,当我从第一个框中选择一个选项时,成本得到正确更新。但在选择金额后,我应该从第二个选择框中选择持续时间,默认值为2年。但当我将值更改为6年时,成本会更新,但选择框选项不会保留为6年,而是更改回2年。如何保留在第二个选择框中选择的选项并正确更新成本?由于您在onchange()进行提交,选择框无法保持其状态。 每次更改都会导致页面重新加载。尝试从两个选择中删除它 除此之外,您使用id的方式是错误的:同一页中不能有两次相同的id。试着这样做: <Select id="amoun

我有这两个选择框,当我从第一个框中选择一个选项时,成本得到正确更新。但在选择金额后,我应该从第二个选择框中选择持续时间,默认值为
2年
。但当我将值更改为
6年
时,成本会更新,但选择框选项不会保留为
6年
,而是更改回
2年
。如何保留在第二个选择框中选择的选项并正确更新成本?

由于您在
onchange()进行提交,选择框无法保持其状态。
每次更改都会导致页面重新加载。尝试从两个
选择中删除它

除此之外,您使用
id
的方式是错误的:同一页中不能有两次相同的
id
。试着这样做:

<Select id="amount" onchange="document.formName.submit(); updateCost();">
   <option id="0" value = "0"> Select amount ... </option>
   <option id="1" value = "2000"> $2000 </option>
   <option id="2" value = "3000"> $3000 </option>
   <option id="3" value = "4000"> $4000 </option>
   <option id="4" value = "5000"> $5000 </option>
</Select>

<Select id="duration" onchange="document.formName.submit(); updateCost();">
   <option id="1" value="2 years"> 2 years </option>
   <option id="2" value="6 years"> 6 years </option>
   <option id="3" value="Lifetime"> Lifetime </option>
</Select>

function updateCost() {      
  var rate = 0;
  if(document.formName.plan[p].checked) {
    if(value('coverageUser').indexOf('Enrolled') > -1){
       rate = getRate();    
    }
    payCycle = 1;
    document.formName.cost.value = formatCurr((rate) * payCycle);
  }    
}
2年
6年
一生

提交表单后返回页面时:

  • 使用
    selected
    属性标记用户选择的选项:

        <option value="1"> 2 years </option>
        <option value="2"> 6 years </option>
        <option value="3"> Lifetime </option>
    
    或者将其添加到您的
    窗口。如果您已经有了onload
    功能,请执行以下操作:

    window.onload = updateCost;
    

updateCost()函数在哪里?如果您在更改表单时提交表单,那么可能页面正在重新加载,选择框正在返回默认值。提交表单后不能启动一些javascript,因为提交会导致回发并重新加载页面。@j08691-updateCost()函数在同一代码中,但它只会使用所选的金额或持续时间来更改成本值。@JacobM-即使我删除document.formName.submit(),它也没有帮助,因为它不会显示成本值。我在这两个方面都同意tcurvelo,尽管重复ID在您尝试用脚本引用其中一个之前不会有任何影响。您想提交onchange()有什么特别的原因吗?如果在表单的选择阶段没有可避免的服务器端依赖关系,则应该能够安全地删除这些提交。
window.onload = updateCost;
window.onload = function() {
    ...
    updateCost();
};