2013-04-17 2 views
1

Мне нужно обновить html 5 datalist через ajax.
Html-код здесь.Динамическое обновление datalist через Ajax

<body> 
    <input type="text" id="bar" list="fruit" onkeyup="jsfun()" /> 
    <datalist id="fruit"></datalist> 
</body> 

Псевдокод JavaScript.

function jsfun(){ 
    //1- Get the last word from input field ("bar"). 
    var skw1 = document.getElementById("searchBar").value; 
    var skw2 = skw1.split(" "); 
    var skw = skw2[skw2.length-1]; 
    //2- Use Ajax to send data on server and get data result back 
    /* 
    * here goes other javascript content for ajax 
    */ 
    xmlhttp.open("GET","searchopt.php?skw="+skw,true); 
      xmlhttp.send(); 
    //3- use javascript to update the datalist with those result which Ajax get. 
} 

см ниже URL здесь первый написать Манг затем удалить его и написать банн
это дает предложение
затем удалить его и знать, написать манго банн на этот раз он не может дать какой-либо suggestion.why, но предложение является важным в базе данных. Это дает предложение только для первого слова.
http://iws.uphero.com/qwe.html

ответ

0

Хорошо ... вот в чем проблема. Datalist по умолчанию соответствует тому, что находится в текстовом поле с разрешенными параметрами. Параметры ARE правильно изменяются через AJAX. Что не меняется, так это то, что «манго банн» не равен «манго» ИЛИ «банну».

В качестве обходного пути вы можете использовать функцию AJAX для перезаписи текстового поля после ввода второго слова. Например:

var skw1 = document.getElementById("searchBar").value; 
var skw2 = skw1.split(" "); 
var skw = skw2[skw2.length-1]; 
document.getElementById("searchBar").value = skw; 
+0

Мне не нужна вся вещь. Просто нужно последнее слово, как предложение google для каждого слова. – Axeem

+0

Он работает так, как ожидалось для меня. Я набираю «mango bann», и он возвращает «bann». – Lawson

+0

Да, он возвращает «bann», но проблема в том, что он не может дать предложение об этом. Если вы sepratly напишите «bann», то он даст предложение – Axeem

Смежные вопросы