ฉันมีการเติมข้อความอัตโนมัติ jQuery UI แบบง่าย ๆ ซึ่งใช้งานได้ แต่ตอนนี้ไม่ได้เป็นเช่นนั้น รหัสมีดังนี้:
<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>
ฉันใช้ตัวจัดการโฟกัสเพื่อแสดงป้ายกำกับในกล่องข้อความแทนค่า (ซึ่งเป็นสิ่งที่การเติมข้อความอัตโนมัติทำตามค่าเริ่มต้น) สิ่งที่เกิดขึ้นตอนนี้คือกล่องข้อความไม่แสดงทั้งป้ายกำกับหรือค่า แต่แสดงค่าที่ฉันพิมพ์ (พูดว่า 'จิ')
สิ่งนี้ใช้งานได้ แต่ตอนนี้ไม่ได้แล้ว ฉันคิดว่าเป็นเพราะฉันได้รวมจาวาสคริปต์อื่น ๆ ไว้และมีความขัดแย้งของชื่อฟังก์ชัน แต่ฉันย้ายมันไปที่ HTML แยกต่างหากดังที่คุณเห็นด้านบน แต่ก็ยังใช้งานไม่ได้
BTW หากฉันไม่แสดงข้อคิดเห็นคำสั่งบันทึกคอนโซลเหล่านั้นและจากดรอปดาวน์ฉันเลือกชิคาโก จากนั้นทั้งหมดก็จะพิมพ์ชิคาโก
นี่ดูเหมือนเป็นความผิดพลาดโง่ๆ ที่ไหนสักแห่งแต่ทำให้ฉันนิ่งงัน มีข้อเสนอแนะอะไรบ้าง?
แก้ไข 1: BTW ถ้าฉันลบโฟกัสและเลือกตัวจัดการ การเติมข้อความอัตโนมัติจะทำงานกับฟังก์ชันเริ่มต้น
แก้ไข 2: คงจะดีถ้ามีคนทดสอบสิ่งนี้บนคอมพิวเตอร์ของตนเอง
.text
ถึง.val
แต่คุณบอกว่ามันใช้ได้ในบางกรณี มันอาจจะไม่ได้เป็นเช่นนั้น - person pimvdb   schedule 14.09.2012