заполненный ajax элемент списка не заполняет ввод при нажатии - PullRequest
0 голосов
/ 29 августа 2011

У меня есть вход, который генерирует позиционированный неупорядоченный список, когда кто-то вводит ключ в него, и он находит совпадение через БД.

проблема в том, что при нажатии на элемент списка не заполняется поле ввода. это очень просто и должно работать.

вот мой HTML:

<p style="position: relative;">
<input id="qbid" value="Enter Customer Name" size="40" />
<div id="qbid_res"></div>
</p>

вот мой jquery:

$('#qbid_res ul li a').click(function(e) {
    e.preventDefault();
    $('#qbid').val($(this).html()); 
    $('#qbid_res').css('display', 'none'); 
}); 
$('#qbid').keyup(function() {
    $.ajax({
        type: "POST",
        url: "ajax-qbid.php",
        data: { name : $('#qbid').val() },
        dataType: "text",
        success: function(data){
            if (data.length > 0)
            {       
                $('#qbid_res').html(data); 
                $('#qbid_res').css('display', 'block');         
            }
        }
    });
});

вот мой php / mysql в ajax-qbid.php:

<ul>

<?php

include 'connect.php';

$sql = mysql_query("select `name` from `customers` where `name` like '%".mysql_real_escape_string($_POST['name'])."%' order by `name` asc");

while ($row = mysql_fetch_assoc($sql))
    echo '<li><a href="#">'.$row['name'].'</a></li>';

?>

</ul>

до того, как я ввел код ajax, он работал нормально. я имею в виду, что он показывает список, когда я ввожу значение, которое будет совпадать в БД, но, как я уже сказал, нажатие на одно из имен не заполняет поле ввода.

1 Ответ

4 голосов
/ 29 августа 2011

Вы должны использовать jQuery live, потому что элементы не присутствуют до вызова ajax, поэтому обработчики click не будут подключены.

$('#qbid_res ul li a').live('click', function(e) {
    e.preventDefault();
    $('#qbid').val($(this).html()); 
    $('#qbid_res').css('display', 'none'); 
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...