0
<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 years。但是当我将值更改为时6 years,成本会更新,但选择框选项不会保留为6 years,而是更改回2 years。如何保留我在第二个选择框中选择的选项并正确更新成本?

4

2 回答 2

1

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

除此之外,您的使用id方式错误:您不能id在同一页面中使用相同的两次。尝试这样的事情:

    <option value="1"> 2 years </option>
    <option value="2"> 6 years </option>
    <option value="3"> Lifetime </option>
于 2012-06-27T01:22:00.833 回答
1

当您在表单提交后返回页面时:

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

    <select id="duration">
        <option value="2 years"> 2 years </option>
        <option value="6 years" selected> 6 years </option>
        <option value="Lifetime"> Lifetime </option>
    </select>
    
  • updateCost()在页面加载时调用:

    window.onload = updateCost;
    

    window.onload或者如果您已经有一个,请将其添加到您的函数中:

    window.onload = function() {
        ...
        updateCost();
    };
    
于 2012-06-28T06:55:16.603 回答