2014-03-30 170 views
5

我想在YII中使用「SELECT2」擴展名。我一步一步地按照教程,但它不工作。用於自動完成不會出現,我得到的鉻控制檯此錯誤的下拉列表...未捕獲TypeError:對象[對象對象]沒有方法'select2'

控制器代碼(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>' 
+0

您的問題沒有透露足夠的信息。我建議你看看你的代碼,做一個查找 - > select2 –

+0

我只想通過使用select2擴展在我的搜索字段上有一個autocoplete。問題是它應該在輸入內容時在下拉列表中顯示一些結果。但是不顯示。當我檢查鉻控制檯它顯示我這個結果 – Mushroom

回答

3

今天我遇到了同樣的問題。我在瀏覽器控制檯中收到「Uncaught TypeError:Object [object Object]」沒有方法'select2'「錯誤消息,以及我引用的另一個.js文件(http://code.jquery.com/jquery-1.9.1.js)中有關已棄用方法的警告。原來我甚至沒有使用它!所以我刪除了引用它的腳本,刪除了警告。

修復警告使我的select2問題消失。

有幾件事情可以幫助您追蹤發生了什麼問題。

  1. 你能夠讓select2在最瑣碎的情況下工作嗎? (剝離頁面上的所有其他內容,並只使用select2下拉列表以確保您的select2庫正在工作)
  2. 如果您可以獲得#1的工作,我會打賭你有一些JavaScript在另一個文件中干擾你的select2 droplist。禁用其他js功能,一次查看哪一個是罪魁禍首。
  3. 祝你好運!注意你的控制檯和網絡標籤,以確保你的js庫正在加載並且沒有錯誤或警告。
+0

感謝您的幫助我會嘗試您的建議,並希望它能工作 – Mushroom

+0

也改進jQuery加載(如多次加載它)可能導致這樣的錯誤。 –

0

您的文本字段的id和您的select2的selector不匹配。您應該將selector更改爲#TitleName或將文本字段id更改爲Title

+0

謝謝你的回覆,但仍然有相同的概率 – Mushroom

+0

你能幫我,謝謝 – Mushroom

+0

是'select2' JavaScript被加載? – topher

相關問題