Я интегрирую функцию поиска, которая будет динамически заполнять выпадающее меню с содержимым в базе данных. С учетом сказанного, однако, когда нажата одна опция из раскрывающегося списка, я хочу, чтобы функция поиска "сама перезагрузилась", так что можно выбрать другую опцию, тем самым имея 2 или более возможных выбора в поле ввода. например, вот нужный результат:
На данный момент приведенный ниже код позволяет только один раз создать динамический выпадающий список:
jQuery(".search").keyup(function() {
var searchbox = jQuery(this).val();
var dataString = 'searchword='+ searchbox;
if(searchbox==''){
jQuery("#display").hide();
} else {
jQuery.ajax({
type: "POST",
url: "/inbox/user-search/",
data: dataString,
cache: false,
success: function(html)
{ jQuery("#display").html(html).show();
jQuery("li").click(function(){
jQuery("#send-message-to-user").val(jQuery.trim(jQuery(this).text())+"; ");
jQuery("#display").hide();
})
}
});
} return false;
});
Есть кое-что, что я пропускаю, очевидно... любая помощь будет очень признательна... приветствия
Бит сложно, когда HTML не находится здесь. Это вам поможет?
function getTextBehindLastSemicolon(string) {
if (string.match(/\;\ (.*)$/)[0]){
return string.match(/\;\ (.*)$/)[0];
}
else{
// If no semicolons
return string;
}
}
var isLoading=false;
function autocomplete(searchWord) {
if (isLoading){
return;
}
isLoading=true;
var dataString = 'searchword=' + searchWord;
if (searchWord == '') {
jQuery("#display").hide();
} else {
jQuery.ajax({
type: "POST",
url: "/inbox/user-search/",
data: dataString,
cache: false,
success: function(html) {
jQuery("#display").html(html).show();
jQuery("li").click(function() {
jQuery("#send-message-to-user").val(jQuery.trim(jQuery(this).text()) + "; ");
jQuery("#display").hide();
});
isLoading=false;
}
});
}
return false;
}
jQuery(".search").keyup(function() {
autocomplete(getTextBehindLastSemicolon(jQuery(this).val()));
return false;
});