0

値を計算するための 1 つのページと 2 つの個別のスクリプトがありますが、1 つのページで Javascript を 2 回繰り返すとうまくいきません。この問題で助けてください。前もって感謝します。

<script type="text/javascript"><!--
function updatesum() {
    var total = (document.form.daysone.value -0)*(document.form.daystwo.value -0)* (document.form.amount.value -0)/ (document.form.year.value -0)/ (document.form.month.value -0);
    document.form.total.value = total.toFixed(3);
}
//--></script>
 <form name="form" action="enter.php" method="post" id="searchform">
     <p>
       <label class="field">15 Days</label>
       <input  name="daysone" type="text" value="15"  onChange="updatesum()" />
     </p> 
          <p>
       <label class="field">686 Days</label>
       <input  name="daystwo" type="text" value="686"  onChange="updatesum()" />
     </p> 
              <p>
       <label class="field">Amount </label>
       <input  name="amount" type="text" value=""  onChange="updatesum()" />
     </p>
              <p>
       <label class="field">year </label>
       <input  name="year" type="text" value="365"  onChange="updatesum()" />
     </p>
              <p>
       <label class="field">month </label>
       <input  name="month" type="text" value="30"  onChange="updatesum()" />
     </p>
      <p>
        <label class="field" >Total </label>
        <input name="total" type="text" value="" />
     </p>





      <strong>next one</strong>


<script type="text/javascript"><!--
function updatesum() {
    var total1 = (document.form1.days1.value -0)*(document.form1.days1.value -0)* (document.form1.amount1.value -0)/ ;
    document.form1.total1.value = total1.toFixed(3);
}
//--></script>
 <form name="form1" action="enter.php" method="post" id="searchform">
     <p>
       <label class="field">15 Days</label>
       <input  name="days1" type="text" value="15"  onChange="updatesum()" />
     </p> 
          <p>
       <label class="field">686 Days</label>
       <input  name="days2" type="text" value="686"  onChange="updatesum()" />
     </p> 
              <p>
       <label class="field">Amount </label>
       <input  name="amount1" type="text" value=""  onChange="updatesum()" />
     </p>

      <p>
        <label class="field" >Total </label>
        <input name="total1" type="text" value="" />
     </p>
4

3 に答える 3

0

ここで同じ名前が問題を引き起こしていると思います.両方の関数に同じ名前を付ける必要がありますか?

名前を 2 番目の UpdateSum から別の名前に変更してみてください。

于 2013-11-11T05:57:55.717 に答える
0

この関数を使用してみて、これに置き換えてください。

<script type="text/javascript">
function updatesum() {


    var total = (document.form.daysone.value -0)*(document.form.daystwo.value -0)* (document.form.amount.value -0)/ (document.form.year.value -0)/ (document.form.month.value -0);
    document.form.total.value = total.toFixed(3);
}
</script>
 <form name="form" action="enter.php" method="post" id="searchform">
     <p>
       <label class="field">15 Days</label>
       <input  name="daysone" type="text" value="15"  onChange="updatesum()" />
     </p>
          <p>
       <label class="field">686 Days</label>
       <input  name="daystwo" type="text" value="686"  onChange="updatesum()" />
     </p>
              <p>
       <label class="field">Amount </label>
       <input  name="amount" type="text" value=""  onChange="updatesum()" />
     </p>
              <p>
       <label class="field">year </label>
       <input  name="year" type="text" value="365"  onChange="updatesum()" />
     </p>
              <p>
       <label class="field">month </label>
       <input  name="month" type="text" value="30"  onChange="updatesum()" />
     </p>
      <p>
        <label class="field" >Total </label>
        <input name="total" type="text" value="" />
     </p>
于 2013-11-11T05:50:40.133 に答える
0

問題は、重複した関数名にあります。

両方の関数の計算が異なるため、別の名前を付けて、それに応じて html を更新することをお勧めします。

これを行う別の方法がありますが、2 つの形式を区別する関数にパラメーターを渡す必要があります。

function updatesum(formName) {
    var total, total1;
    if (formName == 'form') {
        total = (document.form.daysone.value - 0) * (document.form.daystwo.value - 0) * (document.form.amount.value - 0) / (document.form.year.value - 0) / (document.form.month.value - 0);
        document.form.total.value = total.toFixed(3);
    } else if (formName == 'form1') {
        total1 = (document.form1.days1.value - 0) * (document.form1.days1.value - 0) * (document.form1.amount1.value - 0);
        document.form1.total1.value = total1.toFixed(3);
    }
}
于 2013-11-11T06:12:09.287 に答える