2017-06-23 32 views
0

我有以下文件

<link href="~/Content/Site.css" rel="stylesheet" /> 
<link href="~/Content/boostrap-min.css" rel="stylesheet" /> 
<link href="~/Content/themes/base/jquery-ui.min.css" rel="stylesheet" /> 
<script src="~/Scripts/jquery-1.12.4.min.js"></script> 
<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script> 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 

然後,我有javascript函數

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(function() { 
      $("#txtSearch").autocomplete({ 
       source: '@Url.Action("MerrBarkodet","Produktet")' 
      }); 
     }); 
    }); 
</script> 

但不工作時,示值誤差 未捕獲TypeError:$(...)。自動完成不是函數

@using (Html.BeginForm("Index", "Produktet", FormMethod.Get, new { @class = "navbar-form navbar-left" })) 
    { 
    <div class="form-group"> 
     <b>Search:</b>@Html.TextBox("search", null, new { id = "txtSearch" }) 
     <input class="btn btn-default" type="submit" value="Search" /> 
    </div> 
    } 
+2

能否請您確認的jQuery-UI-1.12.1.min.js'是否是''你$(文件).ready'功能之前加載? –

+0

@GuruprasadRao任何作爲文檔就緒的回調,只有在完成頁面加載後纔會執行。排除阿賈克斯負載 –

+1

#Sagar V ..如果jqueryui是404無所謂... – Pogrindis

回答

0

問題的可能原因。

  1. jquery.js加載的順序。 jquery.js必須存在於jqueryui.js之前
  2. jquery.js引用可能存在重複。確保文件中沒有jquery引用。如果您正在實現佈局文件或外部庫,請確保沒有在那裏調用jquery。
  3. 嘗試使用jQuery.noConflict()方法進行測試。它基本上只是讓你爲jQuery使用不同的別名。 例如:

    var j = jQuery.noConflict(); 
    j("div p").hide(); 
    
  4. 檢查你函數調用不獲取文檔之前命中裝:

    $(function(){ 
        var $searchBox = $('#txtSearch'); 
        $searchBox.autocomplete(...); 
    }); 
    
2

註釋掉(或刪除)我在下面評論的代碼。 $(function() { })不會在$(document).ready()呼叫中初始化。

//$(document).ready(function() { 
     $(function() { 
      $("#txtSearch").autocomplete({ 
       source: '@Url.Action("MerrBarkodet","Produktet")' 
      }); 
     }); 
// }); 
相關問題