开发者问题收集

jQuery:未捕获的类型错误:无法读取未定义的属性“值”

2013-04-24
1130

在下面的脚本中,当我在控制台中运行它时,在其中一个 customFields 输入中键入时,它会返回一个错误:

Uncaught TypeError: Cannot read property 'value' of undefined

有人看到什么问题吗?

jQuery(document).ready(function () {

        jQuery("#customfield_21070").attr('style', 'width:60px');

        var customfields = '#customfield_11070,#customfield_11071,#customfield_20071,#customfield_20072,#customfield_20073,#customfield_20074';

           jQuery(customfields).keyup(function () {
                calculateSum.call(this);
            });


        function calculateSum(param) {
            var sum = 0;

            if (!isNaN(param.value) && param.value.length != 0 && param.id !== "customfield_21070") {
                sum += parseFloat(param.value);
            }

            jQuery("#customfield_21070").val(sum.toFixed(2));
        }

    });
1个回答

calculateSum(this) 而不是 calculateSum.call(this)


解释

.call() 的第一个参数实际上并不是将参数传递给您实际调用的函数。它定义了函数 内部 的关键字 this 是什么。

参考: https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/Function/call

Terry Young
2013-04-24