Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加textfields的值Jquery HTML_Jquery_Html - Fatal编程技术网

添加textfields的值Jquery HTML

添加textfields的值Jquery HTML,jquery,html,Jquery,Html,我有一个文本字段,我需要添加它们的值。问题是这些文本字段中的值不是键入的,而是从另一个源获取的。这些文本字段也恰好是只读的。 我需要的是当这些文本字段的值更改时触发的适当事件。这是我目前正在使用的,但还不够好,因为我必须单击并失去焦点,以便文本字段计算。仅供参考。更改和单击事件也无法正常工作。我需要立即汇总这些值,它们会动态变化#GrandMealTotal是需要添加的文本字段之一,#USDGrandAccountTotal是需要添加的其他文本字段。结果将发出警报并显示在id为“gross”的文

我有一个文本字段,我需要添加它们的值。问题是这些文本字段中的值不是键入的,而是从另一个源获取的。这些文本字段也恰好是只读的。 我需要的是当这些文本字段的值更改时触发的适当事件。这是我目前正在使用的,但还不够好,因为我必须单击并失去焦点,以便文本字段计算。仅供参考。更改和单击事件也无法正常工作。我需要立即汇总这些值,它们会动态变化#GrandMealTotal是需要添加的文本字段之一,#USDGrandAccountTotal是需要添加的其他文本字段。结果将发出警报并显示在id为“gross”的文本字段中。下面是我正在使用的

$("#grandmealstotal").live('blur',function(){
var mealtotal=parseFloat($("#grandmealstotal").val());
var accomtotal=parseFloat($("#usdgrandaccomtotal").val());
var grosstotals=parseFloat(accomtotal+mealtotal);
alert(grosstotals)
$("#gross_tripexpense").val((grosstotals).toFixed(2));
})
感谢您的帮助。

在这种情况下,您可以使用或事件:

$('#grandmealstotal').keyup(function() {
    var mealtotal = parseFloat($('#grandmealstotal').val());
    var accomtotal = parseFloat($('#usdgrandaccomtotal').val());
    var grosstotals = parseFloat(accomtotal + mealtotal);
    alert(grosstotals);
    $('#gross_tripexpense').val((grosstotals).toFixed(2));
});
还要确保执行错误处理,因为如果用户输入无效数字,那些
parseFloat
方法可能会失败。您可以使用该功能来执行以下操作:

var mealtotal = parseFloat($('#grandmealstotal').val());
if (!isNaN(mealtotal)) {
    // use the mealtotal variable here
} else {
    alert('please enter a valid number for total meals');
}

更新:

如果值为只读且无法更改,则可以在DOM就绪后执行计算:

$(function() {
    ... do the calculation here
});

您可以为
.change()
事件添加事件处理程序,然后在每次更新输入中的值时触发
.change()
事件。

@Max,oops,忽略了此细节。在这种情况下,您不需要订阅任何事件,因为它们的值不能更改。只需在
$(document).ready
中执行计算。文本字段在用户导航和选择各种项目时定期更改其值。请参阅我关于解决方法的附加注释。@Max,在这种情况下,每次更新这些值时,您都必须手动触发执行计算的函数。我必须补充的是,我现在已经开始使用$(“#formdiv”)。live('mousemove',function)。。。。其中#formdiv是文本字段所在表单的id。移动鼠标时,将计算值。然而,我觉得这不是很有效,它不会创建实时显示的“提示”结果。