0

这准确地报告了 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
4

4 回答 4

2

尝试替换this.value.length$(this).val().length

于 2013-04-21T14:46:40.137 回答
1

这是一个盲目的答案,因为您必须共享您的 html

$('.search').keyup(function () {
    var searchTerm = $(this).val();
    if (searchTerm && searchTerm.length>0){
        getSuggestions(searchTerm);
    }else{
        $('#Button').click();
    }
})
于 2013-04-21T14:56:42.997 回答
1

好的,解决了。谢谢您的帮助。我注意到keyup发射了两次。第二次抛出错误。当我仔细查看 HTML 时,我发现父级也在使用“.search”类。

所以这是我对输入字段使用强 ID 的修复

$('#searchInputField').keyup(function () {
            var searchTerm = this.value;
            if (searchTerm.length > 2){
            getSuggestions(searchTerm);
            }else{
                $('#Button').click();
            }
        })
于 2013-04-21T15:17:29.887 回答
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();
        }
    })
于 2013-04-21T14:53:36.587 回答