这是准确报告console.log中文本字段的长度,但它也在每个keyup上的代码下面抛出错误。有什么想法吗?
$('.search').keyup(function () {
var searchTerm = this.value;
console.log(this.value.length);
if (this.value.length>0){
getSuggestions(searchTerm);
}else{
$('#Button').click();
}
})
这就是我在Chrome控制台中获得的内容
Uncaught TypeError: Cannot read property 'length' of undefined pm_functions.js:283
(anonymous function) pm_functions.js:283
p.event.dispatch jquery.min.js:2
g.handle.h
答案 0 :(得分:2)
尝试将this.value.length
替换为$(this).val().length
答案 1 :(得分:1)
这是一个盲目的答案,因为你必须分享你的HTML
$('.search').keyup(function () {
var searchTerm = $(this).val();
if (searchTerm && searchTerm.length>0){
getSuggestions(searchTerm);
}else{
$('#Button').click();
}
})
答案 2 :(得分:1)
好的,它已经解决了。谢谢您的帮助。我注意到keyup
发射了两次。而错误是第二次被抛出。当我仔细观察HTML时,我发现父母也在使用" .search"类。
所以我的修复使用输入字段的强ID
$('#searchInputField').keyup(function () {
var searchTerm = this.value;
if (searchTerm.length > 2){
getSuggestions(searchTerm);
}else{
$('#Button').click();
}
})
答案 3 :(得分:0)
您可以测试this.value的值:
$('.search').keyup(function () {
var searchTerm = this.value;
console.log(this.value.length);
if ( (this.value.length>0) && (searchTerm !== null) ){
getSuggestions(searchTerm);
}
else {
$('#Button').click();
}
})