2013-07-18 38 views
0

我想實現這個代碼here事先鍵入的內容Twitter的引導不正常mvc4

,但我沒有得到任何結果,同時運行的項目。

這裏是我的代碼:

查看:

<input type="text" name="names" value="" id="typeahead" data-provide="typeahead"    autocomplete="off" /> 

再次對視圖(index.cshtml):

<script type="text/javascript"> 
    $(function() { 
     $('#typeahead').typeahead({ 
      source: function (term, process) { 
       var url = '@Url.Content("~/index/GetNames")'; 

       return $.getJSON(url, { term: term }, function (data) { 
        return process(data); 
       }); 
      } 
     }); 
    }) 
</script> 

控制器(indexController.cs):

[HttpGet] 
public JsonResult GetNames(string term) 
{ 
    // A list of names to mimic results from a database 
    List<string> nameList = new List<string> 
    { 
     "Jonathan", "Lisa", "Jordan", "Tyler", "Susan", "Brandon", "Clayton", "Elizabeth", "Jennifer", "Hadi" 
    }; 

    var results = nameList.Where(n => 
     n.StartsWith(term, StringComparison.OrdinalIgnoreCase)); 

    return new JsonResult() 
    { 
     Data = results.ToArray(), 
     JsonRequestBehavior = JsonRequestBehavior.AllowGet 
    }; 
} 

這裏也是js scrip點加在視圖頁的末尾:

<script src="~/Scripts/bootstrap.js"></script> 
<script src="~/Scripts/jquery-1.9.1.js"></script> 
<script src="~/Scripts/jquery-1.9.1.intellisense.js"></script> 
<script src="~/Scripts/jquery-1.9.1.min.js"></script> 

這裏也是錯誤的名單,我得到運行時:

  • Uncaught TypeError: undefined is not a function bootstrap.js:29
  • Uncaught ReferenceError: intellisense is not defined jquery-1.9.1.intellisense.js:1
  • Uncaught TypeError: Object [object Object] has no method 'typeahead'

請讓我知道我做錯了什麼!

+1

我們花時間爲您回答這個問題的好事,所以您可以在沒有接受的答案的情況下讓我們掛起。 -_- – Mutmatt

回答

0

首先,請確保在引導之前先放置引用jquery的腳本標記。也只加載一個jQuery腳本標籤。

像這樣:

<script src="~/Scripts/jquery-1.9.1.min.js"></script> 
<script src="~/Scripts/bootstrap.js"></script> 
+0

對! JS錯誤解決了,但現在出現了一個新問題:未捕獲錯誤:需要本地,預取或遠程之一 – Tondar

0

您正在使用的那一刻所有的JS庫有一個扶養:jQuery所以他們需要在正確的順序加載:

<!-- jQuery should always be the first --> 
<!-- jquery-1.9.1.js and jquery-1.9.1.min.js are the same but .min version is minified and always lighter, so use it for faster page load --> 
<script src="~/Scripts/jquery-1.9.1.min.js"></script> 

<!-- Any other library should be loaded after jQuery --> 
<script src="~/Scripts/bootstrap.js"></script> 
<script src="~/Scripts/jquery-1.9.1.intellisense.js"></script> 

希望這有助於; )

+0

感謝您的回覆!好吧,我已經做了這些更改和上述錯誤的問題解決了,但我仍然得到這個:未捕獲的錯誤:在jquery-1.9.1.min.js中需要本地,預取或遠程之一我認爲它與某些事情有關提前打印的數據。 GetNames方法永遠不會接到電話! – Tondar

+0

你是否包括圖書館http://twitter.github.io/typeahead.js/?如果是這樣,你應該刪除對它的引用,因爲Bootstrap已經包含另一個typeahead函數,其中2個有點不同。 –

+0

Hieu,不,我不包括任何引用twitter.github.io/typeahead.js的庫。同樣的錯誤:未捕獲錯誤:需要本地,預取或遠程之一。我知道這意味着我必須通過至少一個數據源(預取或遠程)或數據集(本地),但即時通訊在GetNames函數中並通過jscript調用它! – Tondar

2

這可能有點舊但不能使用source:您必須使用remote:,prefetch:local:作爲錯誤讀取。

您使用的是哪個版本的引導程序?獨立插件不再像以前那樣支持所有不同的數據提供者

相關問題