0

オートコンプリートは正常に機能し、すべての入力フィールドにバインドされます。ただし、エラーが発生した場合は、適切なエラー メッセージを表示できるように入力の ID を参照する必要があります。誰かが正しい方向に向けることができますか? this の参照はページであり、$(this) の参照は未定義です。

            render: function() {
                this.$(".inputClass").autocomplete({ // add book dialog
                    source: function(request, response ) {
                         $.ajax({
                             url: someurl + request.term,
                             dataType: "json",
                             global: false, // disable loadingScreen
                             success: function(json) {
                                 books = json.data.list;
                                 response( $.map( i, function( item ) {
                                     return {
                                         test: item.test,
                                     };
                                 }));
                             },
                             error: function(json) {
                                //get element id and apply error class
                             } // error
                         }); // ajax
                    }, // source
                    minLength:1
                 });
      return this;
    }
4

1 に答える 1

0

Javascriptのthisキーワードは、関数内のコンテキストを変更します。これを回避するために、元のコンテキストへの参照を保存できます(慣例により「それ」または「自己」と呼びます)。

render: function() { 
    var that = this;

    // ...

    error: function(json() {
        that.$el.addClass("error");
    }
于 2012-09-19T22:21:03.923 に答える