2

当输入被键入时,我试图进行简单的加法计算。这是我的html:

<tr id="a">
        <td>
            <label>A</label>
        </td>
        <td>
            <label>Results/Action Orientation (asset)</label>
        </td>
        <td class="shade">
            <input id="a_per" type="text" />
        </td>
        <td class="shade">
            <input id="a_pot" type="text" />
        </td>
        <td class="shade">
            <input id="a_tot" class="totals" type="text" disabled="disabled" />
        </td>
</tr>

这是我的keyup事件的jQuery:

$('#a_per').keyup(function() {
    if($('#a_pot').value != "") {
        var tot = this.value + $('#a_pot').value;
        $('#a_tot').value = tot;
    }
});

我将调整它以在#a_per 或#a_pot keyup 时触发,但首先我想确保它能够正常工作。

任何帮助表示赞赏。谢谢。

4

3 回答 3

2

另一种选择:

$('#a_per,#a_pot').keyup(function() {
  var a_per = +$('#a_per').val() || 0;
  var a_pot = +$('#a_pot').val() || 0;
  $('#a_tot').val(a_per + a_pot);
});​

一个工作示例

于 2012-05-15T20:53:00.637 回答
1

将您对 .value 的使用更改为 .val()。您还需要将 parseFloat 或 parseInt 应用于您的加法函数,否则您最终会连接字符串。还 wrapthis是 jQuery 标签,如:

$('#a_per').keyup(function() {
    if($('#a_pot').val() != "") {
        var tot = parseFloat($(this).val()) + parseFloat($('#a_pot').val());
        $('#a_tot').val(tot);
    }
});​
于 2012-05-15T20:47:50.673 回答
1

使用val(),而不是价值。

$(function(){

   $('#a_per').keyup(function() {
     var item=$(this);

      if(item.val() != "") {
         var tot = parseInt(item.val()) + parseInt($('#a_pot').val());
         $('#a_tot').val(tot);
      }
   });

});

工作样本:http: //jsfiddle.net/zzS3U/9/

于 2012-05-15T20:54:13.870 回答