这是this thread(change text value by clicking drop down list)的后续内容 在这个问题得到解决的地方,我的脚本没有用,所以我会更深入。
HTML
<li><input type="text" id="location"></li>
<div id="locationselect"></div>
用户开始在文本输入id =“location”中键入其位置,AJAX用于返回以用户输入开头的位置列表。 (例如,“Lon”将返回伦敦,Long Eaton等,并将结果返回 作为无序列表)
getlocations.php
<?php
if ($location == '') {echo "";}
else {
echo "<ul>";
while($location = mysql_fetch_assoc($result)){
echo "<li>". $location['location'] ."</li>";
}
echo "</ul>";
}
?>
这一切都很棒!!! 我在输入用户输入时得到了位置的下拉列表,因此AJAX部分正在运行。
我现在遇到的问题是...... 当您键入字母HOWEVER
时,它会显示一个位置列表$('#locationselect li').click(function() {
$('#location').val($(this).text());
});
单击列表项时,似乎不会自动填充 id =“location”输入文本字段。 getlocations.php文件中是否缺少某些内容?
真的很困惑,为新线程道歉,但最后在技术上得到回答=)感谢您的帮助。
答案 0 :(得分:1)
如果我理解正确,那么在任何可用之前,你将click事件绑定到#locationselect下的任何li。 在li元素加载并在ajax调用中呈现之后,应该绑定click事件。试试这个:
$('document').ready(function(){
$('#location').keyup(function() {
if ($('#location').length == 0) {
$('#locationselect').hide();
}
$('#locationselect').html("");
var location = $('#location').val();
location = $.trim(location);
$.ajax({
type:"post",
url:"getlocations.php",
data:"location="+location,
success:function(data){
$("#locationselect").html(data);
$('#locationselect li').click(function() {
$('#location').val($(this).text());
});
}
});
});
});