JavaScript函数中的TypeError

时间:2014-09-16 12:11:34

标签: javascript jquery typeerror

我有一些JavaScript代码:

var update_money = function(money_am){
    var d = {'ammount': money_am};
    $.post("/adr/", d, load_money)
}

z = parseFloat($('#money').val());
$('#money').change(z, update_money);

执行时,它会给我一个运行时错误:

  

TypeError:在没有实现接口事件的对象上调用'stopPropagation'。

在调试中,我发现money_am不是浮点数。这是一个对象。但如果我改变我的代码:

var update_money = function(money_am){
    var d = {'ammount': parseFloat($('#money').val())};
    $.post("/adr/", d, load_money)
}

效果很好。我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:2)

传递给事件处理程序的数据可以由event.data访问:

Fiddle

var update_money = function(event)
{
    var money_am = event.data;
    alert(money_am);
    var d = {'ammount': money_am};
    $.post("/adr/", d, load_money);
}

function load_money() { }

z = parseFloat($('#money').val());
$('#money').change(z, update_money);

答案 1 :(得分:0)

确保parseFloat可以解析money-value:

您可能还想将代码更改为:

$('#money').change(function() {
    var z = parseFloat($('#money').val());
    load_money(z);
});

这将允许您每次#money-field更改时获得新的金钱价值。而不是总是使用相同的值。与正确定义z。

一起