开发者问题收集

无法读取未定义的属性“toLowerCase”-jQuery

2015-05-05
24236

我读过其他示例,其中 toLowerCase 未定义,但我仍然不明白。有人能解释为什么我的函数不起作用吗?

var changeTitle = function() {
    var loanTitle = $(this).val();
    $(this).prev().text(loanTitle);
};
<h2>Loan One</h2>
<input type="text" onkeypress="changeTitle()" maxlength="25" />
2个回答

在您的函数中, this 对象引用窗口而不是输入字段。将您的 onkeypress 代码更新为以下内容:

<input type="text" name="loanName" onkeypress="changeTitle.call(this)" class="loanNameV1 qForms" maxlength="25" placeholder="Loan Name" />
Hoyen
2015-05-05

我不确定您到底想做什么,但我将您的输入元素作为参数传递给您定义为 this 的函数,并将 JQuery 库添加到我的代码片段中。它工作正常,但最后一个按键未显示在标题中。也许您可以将它与您的 toLowerCase 功能一起使用,并根据自己的喜好进行修复。

var changeTitle = function(obj) {
    var loanTitle = $(obj).val();
    $(obj).prev().text(loanTitle);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h2 class="nameLoan1"> Loan One </h2>
<input type="text" onkeypress="changeTitle(this);" maxlength="25" placeholder="Loan Name" />
ThisClark
2015-05-05