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 に答える