У меня есть простое автозаполнение пользовательского интерфейса jQuery, которое работало, а теперь нет. Код выглядит следующим образом:
<html>
<head>
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.23.custom.min.js"></script>
<script type="text/javascript">
$(function() {
$( "#city" ).autocomplete({
source: function( request, response ) {
var cities = new Array();
cities.push({"label" : "Chicago", "value" : 1});
cities.push({"label" : "Houston", "value" : 2});
response(cities);
},
focus: function(event, ui) {
//console.log(ui.item.label);
$(this).text(ui.item.label);
//console.log($(this).text());
event.preventDefault();
//console.log($(this).text());
},
select: function(event, ui) {
//console.log($(this).text());
event.preventDefault();
//console.log($(this).text());
}
});
});
</script>
</head>
<body>
<input id="city" />
</body>
</html>
Я использую обработчик фокуса, чтобы показать метку в текстовом поле вместо значения (что делает автозаполнение по умолчанию). Сейчас происходит то, что в текстовом поле не отображается ни метка, ни значение, оно показывает значение, которое я набрал (скажем, «Чи»)
Это работало, но теперь это не так. Я думал, что это из-за того, что я включил какой-то другой javascript, и произошло столкновение имени функции. Но я переместил его в отдельный HTML-код, как вы можете видеть выше, и он все еще не работает.
Кстати, если я раскомментирую эти операторы журнала консоли и в раскрывающемся списке выберу Чикаго, тогда все они напечатают Чикаго.
Это похоже на какую-то глупую ошибку где-то, но я поставил в тупик. Какие-либо предложения?
РЕДАКТИРОВАТЬ 1: Кстати, если я удалю фокус и выберу обработчики, то автозаполнение будет работать с функциями по умолчанию.
РЕДАКТИРОВАТЬ 2: Было бы здорово, если бы кто-то мог проверить это на своем компьютере.
.text
на.val
, но вы говорите, что это работает в определенных случаях, так что это может быть не так. - person pimvdb   schedule 14.09.2012