0

我需要确保最小答案是 5,最大不能大于 25。我使用的代码是:

function temp(form)
{
    var i = parseFloat(form.Inc.value, 10);
    var c = 0;
    c = 25 - ((300 - i) * 8.0 / 100);
   form.Fee.value = c.toFixed(2);

   function decrease(form)
   {
        if (c > 25) 
        {
           c--;
           document.getElementById('Fee').innerHTML = 25;
        }
   }

   function increase(form)
   {
       if (c < 5) 
       {
           c++;
           document.getElementById('Fee').innerHTML = 5;
       }
   }
}

但是,表格中的答案框无法识别最小和最大数字。

4

1 回答 1

0

form.Fee.value 意味着您的表单有一个名为“Fee”的元素。
"name" 属性与 "id" 属性不同,并且由于您可能没有为表单元素提供 'id',因此 document.getElementById() 可能返回 null。
考虑使用 document.getElementsByName 或使用 form.Fee。

此外,不会调用 reduce() 和 increase() 方法。
我认为您正在寻找这样的代码:

 function temp(form)
 {
    var i = parseFloat(form.Inc.value, 10);
    var c = 0;
    c = 25 - ((300 - i) * 8.0 / 100);

    // Alternatively use Math.min and Math.max
    if ( c > 25 ) c = 25; 
    if ( c < 5 ) c = 5;

    form.Fee.value = c.toFixed(2);
 }

补充笔记; var c可以使用其正下方的行中的表达式进行初始化;初始化为 0 是不必要的。

于 2013-08-28T11:38:17.223 回答