2012-06-17 2 views
2

Я пытаюсь реализовать JSON в первый раз для ввода типа автозаполнения.JSON autocomplete, не показывает результаты

@{ 
    ViewBag.Title = "Index"; 
} 

<script type="text/javascript"> 
function searchFailed(){ 
$("#searchresults").html("Sorry, there was a problem with the search."); 
} 
    $("input[data-autocomplete-source]").each(function() { 
     var target = $(this); 
     target.autocomplete({ source: target.attr("data-autocomplete-source") }); 
    }); 
</script> 

<h2>Index</h2> 

@using (Ajax.BeginForm("QuickSearch", "Search", new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "GET", OnFailure = "searchFailed", LoadingElementId = "ajax-loader", UpdateTargetId = "searchresults", })) 
{ 
<input type="text" name="q" data-autocomplete-source="@Url.Action("QuickSearch", "Search")" /> 

} 

Но он жалуется, что источник данных-автозаполнения не является допустимым атрибутом. Он входит в QuickSearch, но я не вижу результата автозаполнения.

ответ

0
target.data("autocomplete-source"); 

использовать атрибут данных. JQuery. data


Заменить:

$("input[data-autocomplete-source]").each(function() { 
    var target = $(this); 
    target.autocomplete({ source: target.attr("data-autocomplete-source") }); 
}); 

с:

$(function() { 
    $("input[data-autocomplete-source]").each(function() { 
     var target = $(this); 
     target.autocomplete({ source: target.data("autocomplete-source") }); 
    }); 
}); 

Вы используете $(function() {}) ждать, пока страница не будет "готов" и элемент существует.


Изменение:

<input type="text" name="q" data-autocomplete-source="@Url.Action("QuickSearch", "Search")" /> 

к:

<input class="my-autocomplete" type="text" name="q" data-autocomplete-source="@Url.Action("QuickSearch", "Search")" /> 

И изменение:

$("input[data-autocomplete-source]").each 

к:

$("input.my-autocomplete").each 
+0

Где я могу добавить target.data? – user1408786

+0

Он вызывает мое действие. Но я не вижу результатов действия в списке предложений? – user1408786

Смежные вопросы