未捕获的TypeError:对象[object Object]没有方法' select2'

时间:2014-03-30 06:19:39

标签: javascript php yii autocomplete yii-extensions

我正在尝试使用" SELECT2"用YII扩展。我一步一步地按照教程,但它没有工作。自动完成的下拉列表不会出现,我在Chrome控制台中收到此错误...

控制器代码(HotelController)

public function actionTitleName(){
    $model =HotelEn::model()->findAll ('Title like :Title',array(':Title'=>"%".$_GET['q']."%")); 
    $result = array();
    foreach ($model as $HotelEn){
        $result[] = array(
            'id'=>$HotelEn->id,
            'term'=>$RoomEn->Number,
        ); 
    }
    echo CJSON::encode($result);
}

视图代码(_roomearch)

echo CHtml::beginForm(CHtml::normalizeUrl(array('Hotel/create')), 'get', array('id'=>'filter-form'))
    . '<div class="row" style="width:100%;">'
    . CHtml::encode('Hotel Name')
    . CHtml::textField('Number',(isset($_GET['Number'])) ? $_GET['Number'] : '',array('id'=>'Number'));
$this->widget('ext.select2.ESelect2',array(
    'selector' => '#Title',
    'options'  => array(
        'allowClear'=>true,
        'placeholder'=>'Select a Hotel Name',
        'minimumInputLength' => 2, 
        'ajax' => array(
            'url' => Yii::app()->createUrl('Hotel/Number'),
            'type'=>'GET',
            'dataType' => 'json',
            'quietMillis'=> 100,
            'data' => ' function(term,page) {
                return {
                    //get im my controller
                    q: term, 
                };
            }',
            'results'=>'function(data,page) { return {results: data, more:more }; }',
        ),
    ),
));         
echo '</div>'

2 个答案:

答案 0 :(得分:3)

我今天遇到了同样的问题。我收到了&#34;未捕获的TypeError:对象[object Object]没有方法&#39; select2&#39;&#34;我的浏览器控制台中的错误消息以及有关我引用的另一个.js文件中已弃用的方法的警告(http://code.jquery.com/jquery-1.9.1.js)。事实证明我甚至没有使用它!所以我删除了引用它的脚本,删除了警告。

修复警告使我的select2问题消失了。

一些可以帮助您追踪错误的事情。

  1. 你能让select2在最微不足道的情况下工作吗? (从页面中删除其他所有内容,只使用select2下拉列表以确保您的select2库正常工作)
  2. 如果你可以让#1工作,我会下注你在另一个文件中有一些javascript会干扰你的select2下拉列表。一次禁用其他一个js功能,看看哪个是罪魁祸首。
  3. 祝你好运!密切关注您的控制台和网络标签,确保您的js库正在加载,并且没有错误或警告。

答案 1 :(得分:0)

您的文字字段id和您的select2的selector不匹配。您应该将selector更改为#TitleName或将文本字段id更改为Title