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关键字会在函数内更改其上下文。为了解决这个问题,您可以保存对原始上下文的引用(按照惯例将其称为“that”“self”)。

render: function() { 
    var that = this;

    // ...

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