我想知道是否有人可以提供帮助。我正在使用一个自动填充数据库的脚本,除了一个问题之外它工作正常我想知道是否有人可以帮助我。
当点击自动提示时,它会填充选择正常的文本框,但是如果您尝试进行另一个选择(通过再次开始输入),它不会使用新选择填充文本框,它只保留旧选择。
以下是我的代码......
rtsearch.php (删除了php以节省空间)抓取数据以填充html表单& DIV:
<div class="display_box2" align="left">
<span class="name"><b><?php echo $country; ?></b>, <span class="bodyotxt"><?php echo $row['town']; ?></span></span>
</div>
<?php } } ?>
实际HTML表格AUTOCOMPLETES:
<div><form action="<? $_SERVER['php self'];?>" method="post" enctype="multipart/form-data" name="form1" class="form" id="form1" autocomplete="off">
<input name="rt" type="text" class="search2" id="inputSearch2" value="" onclick="this.value='';" /></form>
<div id="divResult2"></div>
</div>
JQUERY:
$(document).ready(function(){
$(".search2").keyup(function()
{
var inputSearch2 = $(this).val();
var dataString = 'searchword='+ inputSearch2;
if(inputSearch2!='')
{
$.ajax({
type: "POST",
url: "autocomplete/rtsearch.php",
data: dataString,
cache: false,
success: function(html)
{
$("#divResult2").html(html).show();
}
});
}return false;
});
$("#divResult2, #divResult2 span").on("click",function(e){
//var $clicked = $(e.target);
if($(this).parent().attr("id")=="divResult2"){ var $clicked = $(this).parent(); }else{ var $clicked = $(e.currentTarget); }
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#inputSearch2').val(decoded);
});
$(document).on("click", function(e) {
var $clicked = $(e.target);
if (! $clicked.hasClass("search2")){
$("#divResult2").fadeOut();
}
});
$('#inputSearch2').click(function(){
$("#divResult2").fadeIn();
});
});
我已经完成了它,似乎无法找到问题。
提前感谢任何可以了解这个问题的人
答案 0 :(得分:1)
您是否尝试过使用e.currentTarget
代替e.target
?
答案 1 :(得分:1)
可能很简单:
jQuery("#divResult2, #divResult2 span").on("click",...