Javascript 未捕获类型错误:无法读取属性';toLowerCase';未定义的

Javascript 未捕获类型错误:无法读取属性';toLowerCase';未定义的,javascript,typeerror,Javascript,Typeerror,不行!控制台日志打印: 未捕获的TypeError:无法读取未定义的属性“toLowerCase”您没有调用.toLowerCase(),但我猜您正在将其链接到.val()的末尾 问题是您的这个值是窗口,而不是#sum元素 将处理程序更改为: $('#sum').keydown(function(){ updateResultPrice(); }); function updateResultPrice() { a

不行!控制台日志打印:
未捕获的TypeError:无法读取未定义的属性“toLowerCase”

您没有调用
.toLowerCase()
,但我猜您正在将其链接到
.val()
的末尾

问题是您的
这个
值是
窗口
,而不是
#sum
元素

将处理程序更改为:

$('#sum').keydown(function(){
           updateResultPrice(); 
        });

        function updateResultPrice() {
            ajax('/payment/summ', 'price='+$(this).val());
        }

$(“#sum”).keydown(updateResultPrice);// 您没有对
.toLowerCase()
的调用,但我猜您正在将其链接到
.val()
的末尾

问题是您的
这个
值是
窗口
,而不是
#sum
元素

将处理程序更改为:

$('#sum').keydown(function(){
           updateResultPrice(); 
        });

        function updateResultPrice() {
            ajax('/payment/summ', 'price='+$(this).val());
        }

$(“#sum”).keydown(updateResultPrice);// 我按原样测试了您的代码,实际上没有通过控制台得到“uncaughttypeerror:cannotreadproperty'toLowerCase'ofundefined”错误。但是,我确实使用
ajax()
方法触发了一个错误

代码不起作用的原因在于
$(这)
将等于
窗口,而不是
#sum
元素。他在回答中解释了这一点

请尝试改用此代码

$('#sum').keydown(updateResultPrice); // <-- pass the function directly

function updateResultPrice() {
    ajax('/payment/summ', 'price='+$(this).val().toLowerCase());
}

为了您的测试乐趣,这里是上述代码的演示。

我按原样测试了您的代码,实际上并没有通过控制台得到“Uncaught TypeError:Cannot read property'toLowerCase'of undefined”错误。但是,我确实使用
ajax()
方法触发了一个错误

代码不起作用的原因在于
$(这)
将等于
窗口,而不是
#sum
元素。他在回答中解释了这一点

请尝试改用此代码

$('#sum').keydown(updateResultPrice); // <-- pass the function directly

function updateResultPrice() {
    ajax('/payment/summ', 'price='+$(this).val().toLowerCase());
}

为了您的测试乐趣,下面是上述代码的演示。

在您发布的代码中没有调用
toLowerCase
。这是因为错误是从jQuery代码中引发的,而jQuery代码正在应用
.toLowerCase()
到一个显然未定义的变量。在您发布的代码中没有调用
toLowerCase
。这是因为jQuery代码引发了错误,该代码正在将
.toLowerCase()
应用到一个显然未定义的变量。