根据使用JavaScript的另一个单元格的输入更改单元格值

时间:2014-01-20 19:07:14

标签: javascript jquery

感谢各界人士的帮助,我已经完成了我昨天要做的事情/

我在这里添加了一个小提琴http://jsfiddle.net/uzW5e/

我希望当有人在Percentage Grade(类percGrade)列中输入大于85的值时,值1将放在Pass Level(类passLevel)列中,但它不起作用?

<table align="center">
    <tr>
        <th>
            Module
        </th>
        <th>
            Percentage Grade
        </th>
        <th>
            Credits
        </th>
        <th>
            Pass Level
        </th>
        <th>
            WGC
        </th>
    </tr>
    <tr class="multRow">
        <td>
            <input name="module" />
        </td>
         <td>
            <input name="percentageGrade" class="percGrade" />
        </td>

        <td>
            <input name="credits" class="credits"/>
        </td>
        <td>
            <input name="passLevel" class="passLevel"/>
        </td>
        <td>
                <span class="multTotal">0.00</span>
        </td>
    </tr>



        <tr>
<td colspan="5" align="right">
    Total <span id="grandTotal">0</span>
</td>

     

<script>
 $(document).ready(function () {
   $(".multRow input").keyup(multInputs);

   function multInputs() {
       var mult = 0;
       // for each row:
       $("tr.multRow").each(function () {
           // check value entered for Percentage Grade 
           // & change Pass Level to value accordingly
           var $num = 0;
           if ($('.percGrade', this).val() > 85) {
               $num = 1;
               $('.passLevel',this).text($num);                
           }
           // get the values from this row:   
           var $val1 = $('.credits', this).val();
           var $val3 = $('.percGrade', this).val(); 
           var $val2 = $('.passLevel', this).val();
           var $total = ($val1 * 1) * ($val2 * 1)
           $('.multTotal',this).text($total);
           mult += $total;
       });
       $("#grandTotal").text(mult);
   }
  });
  </script>

1 个答案:

答案 0 :(得分:0)

由于.passLevel是文字字段,您应该使用.val代替.text

$('.passLevel',this).val($num);