У меня есть функция, которая выглядит следующим образом:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
<script src="/js/jquery-ui-1.8.13.custom.min.js" type="text/javascript"></script>
function getValues (fieldName, action){
$("#" + fieldName).keyup(function () {
if (this.value != this.lastValue){
if (this.timer) clearTimeout(this.timer);
this.timer = setTimeout(function () {
//$( "#"+fieldName ).autocomplete({source:"http://www.expat-job.com/ajax/" + action + "/keyword/" + $("#" + fieldName).val()});
$.ajax({
type: "POST",
dataType: 'json',
url:"http://www.expat-job.com/ajax/" + action + "/keyword/" + $("#" + fieldName).val(),
success:function(msg) {
//splitedmsg = msg.split(',');
$( "#"+fieldName ).autocomplete(msg);
}
});
}, 200);
this.lastValue = this.value;
}
});
}
Затем он называется так:
$('input').live('click', function() {
var word = $(this).attr('id');
var splitedWord = word.split('-');
switch(splitedWord[1])
{
case 'CompanyName':
getValues(word, 'cv-company');
case 'DegreeName':
getValues(word, 'degree-name');
case 'InstituteName':
getValues(word, 'institute-name');
case 'LanguageName':
getValues(word, 'language-name');
case 'CertificationName':
getValues(word, 'certification-name');
case 'SkillName':
getValues(word, 'skill-name');
case 'JobTitle':
getValues(word, 'job-title');
}
});
Ответ Ajax выглядит следующим образом:
["Mondial Assistance","Mondial Assistance Asia Pacific","Mondial Assistance Group","Mondial Assistance Mauritius","Mondial Assistance Thailand"]
Это массив, завернутый в json_encode ().
Моя проблема заключается в части автозаполнения:
$( "#"+fieldName ).autocomplete(msg);
Я пытался всеми возможными способами ввести данные. Я повторил строку и разделил ее, чтобы получить массив.
Я использовал другой синтаксис:
$ ("#" + fieldName) .autocomplete ({source: msg});
Я всегда получаю одно и то же сообщение об ошибке:
$("#" + fieldName).autocomplete is not a function
success()cv (line 453)
msg = "["Mondial Assistance","...l Assistance Thailand"]"
F()jquery.min.js (line 19)
F()jquery.min.js (line 19)
X = 0
После многих испытаний я обнаружил, что он работает с таким простым тестом, как этот:
$( "#"+fieldName ).autocomplete({source: ["orange","apple","pear"]});
Так что проблема не в том, что функция отсутствует или библиотека не загружена или что-то в этом роде.
А теперь вопрос
Почему?!