0

誰か助けてくれませんか。データベースからオートコンプリートするスクリプトを使用していますが、誰かが私を助けてくれるかどうか疑問に思っている1つの問題を除けば、うまく機能しています。

自動提案をクリックすると、テキストボックスに選択内容がうまく入力されますが、別の選択をしようとすると (もう一度入力を開始して)、テキストボックスに新しい選択内容が入力されず、古い選択内容が保持されます。

以下は私が持っているコードです...

データを取得して html フォームと div に入力するrtsearch.php (スペースを節約するために php を削除):

<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 フォームのオートコンプリート:

<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>

Jクエリ:

$(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();
});
});

私はそれを経験しましたが、問題を見つけることができないようです。

これに光を当てることができる人に事前に感謝します

4

2 に答える 2

1

おそらく次のように簡単です:

jQuery("#divResult2, #divResult2 span").on("click",...
于 2012-11-21T14:20:19.277 に答える