Окно со списком авто-предложений - PullRequest
1 голос
/ 05 марта 2012

Привет, у меня настроено следующее окно автоматического предложения, и я хочу выбрать выходы с помощью клавиатуры и мыши.Как я могу это сделать?

Код Javascript:

 function showResult(string) {

     if (string.lenght==0) {
         document.getElementById("livesearch").innerHTML="";
         document.getElementById("livesearch").style.border="0px";
         return;
     }
     if (window.XMLHttpRequest) {
         // code for IE7+, Firefox, Chrome, Opera, Safari
         xmlhttp=new XMLHttpRequest();
     } else {
         //code for IE6, IE5
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
     xmlhttp.onreadystatechange=function() {
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
         }
         document.getElementById("livesearch").innerHTML = xmlhttp.responseText;
         document.getElementById("livesearch").style.border = "1px solid #A5ACB2";
     }
     xmlhttp.open("GET","test.php?q=" + string,true);
     xmlhttp.send();
}

Код PHP:

$xmlDoc=new DOMDocument();
//$xmlDoc->load("test.xml");
$xml = simplexml_load_file("test.xml");

//$x=$xmlDoc->getElementsByTagName('datas');

//get the q parameter from URL
$q = $_GET["q"];
if (strlen($q) > 0) {   
    foreach ($xml->datas as $a) {
        $var = $a->attributes();
        $domain = stristr($var,$q);
        echo $domain."\n";
        echo "<br/>";
    }
    if (strlen($domain) == 0) {
        echo "no results";
    }

На данный момент все работает отлично.Но я не знаю, как взаимодействовать со списком.

1 Ответ

1 голос
/ 05 марта 2012

Было бы лучше использовать правильное автозаполнение jQuery. Вы можете выполнить поиск по "автозаполнению jquery" и найти jQuery, который соответствует вашим требованиям. Если вы хотите написать свой собственный код, вы можете создать функции, которые будут работать с событиями мыши и клавиатуры:

txtSearchBox.keyup(function (e) {

    // get keyCode (window.event is for IE)
    var keyCode = e.keyCode || window.event.keyCode;
    var lastSearch = txtSearchBox.val();

    // check for an ENTER 
    if (keyCode == 13) {
        OnEnterClick();
        return;
    }

    // check an treat up and down arrows
    if (OnUpDownClick(keyCode)) {
        return;
    }

    // check for an ESC
    if (keyCode == 27) {
        clearResults();
        return;
    }
});

А затем в «OnEnterClick ()», «OnUpDownClick ()» и «OnUpDownClick ()» вы можете отобразить, что вы хотите:

function OnUpDownClick(keyCode) {
    if(keyCode == 40 || keyCode == 38){

        if(keyCode == 38){ // keyUp
            // Do something keyUp event
        } else { // keyDown
            // Do something for keyDown event
        }

        return true;
    } else {
        // reset
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...