0

我有我的代码

sum=parseFloat($('input[name=fieldname]').val()) * 60 + 
parseFloat($('input[name=fieldname]').val()) + 
(($('input[name=fieldname]').val()) /60).toFixed(2).

它从我输入持续时间的字段中获取值,它应该以分钟为单位给我总和。问题是我得到的总和连接了 3 个字段,而不是返回分钟数。

例如:在 1 小时 20 分钟内,我得到 6020 而不是 (60+20) 80

编辑:上面的代码是通用形式,这里是确切的代码。

var sum = parseFloat($('input[name="<?php esc_attr_e( $field->field_id ); ?>hrs"]').val())*60 +
parseFloat(($('input[name="<?php esc_attr_e( $field->field_id ); ?>mins"]').val()) + 
parseFloat($('input[name="<?php esc_attr_e( $field->field_id ); ?>secs"]').val())/60).toFixed(2) 
4

2 回答 2

1

它连接起来是因为您的语句中仍然有一个字符串。让我们简化数字转换函数并使用直接的语法:

var h = $('input[name=hours]').val(),
    m = $('input[name=minutes]').val(),
    s = $('input[name=seconds]').val();
sum = 3600*(h|0) + 60*(m|0) + (s|0);
于 2013-02-23T16:24:04.843 回答
0

toFixed()返回一个字符串,并将其连接到先前计算的结果。用这个:

var input = parseFloat($('input[name=fieldname]').val());
sum = input * 60 + input + Math.round(input / 6000) * 100;

(如果您有单独的输入,则等效,我想您明白了)

于 2013-02-23T16:22:55.420 回答