0

これは、console.log のテキスト フィールドの長さを正確に報告していますが、キーアップごとにコードの下にエラーをスローしています。何かご意見は?

$('.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

OK、解決しました。助けてくれてありがとう。keyupが 2 回発砲していることに気付きました。そして、エラーは2回目にスローされていました。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 に答える
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 に答える
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 に答える