javascript长度函数在文本字段上抛出错误

时间:2013-04-21 14:41:48

标签: javascript jquery

这是准确报告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 个答案:

答案 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();
        }
    })