未捕获的TypeError:无法读取未定义的属性'toLowerCase'

Дан*_*еев 1 javascript typeerror

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

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

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

six*_*man 5

你没有打过电话.toLowerCase(),但我猜你正在把它链接到最后.val().

麻烦的是你的this价值是window,而不是#sum元素.

将处理程序更改为:

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

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

现在,当调用处理程序时,this将引用该#sum变量并且.val()不会返回undefined.