Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过Ajax动态更新数据列表_Javascript_Php_Ajax_Html_Html Datalist - Fatal编程技术网

Javascript 通过Ajax动态更新数据列表

Javascript 通过Ajax动态更新数据列表,javascript,php,ajax,html,html-datalist,Javascript,Php,Ajax,Html,Html Datalist,我需要通过ajax更新HTML5数据列表。 Html代码在这里 <body> <input type="text" id="bar" list="fruit" onkeyup="jsfun()" /> <datalist id="fruit"></datalist> </body> 请参阅下面的url,首先写入mang,然后删除它并写入bann 它给出了一个建议 然后删除它,并知道writemango bann这一次它不能给

我需要通过ajax更新HTML5数据列表。
Html代码在这里

<body>
  <input type="text" id="bar" list="fruit" onkeyup="jsfun()" />
   <datalist id="fruit"></datalist>
</body>
请参阅下面的url,首先写入mang,然后删除它并写入bann
它给出了一个建议
然后删除它,并知道writemango bann这一次它不能给出任何建议。为什么,但建议是在数据库中发送的。它只对第一个单词给出建议。

好的。。。问题就在这里。默认情况下,Datalist将文本框中的内容与允许的选项相匹配。这些选项通过AJAX进行了适当的更改。没有改变的是,“芒果班”并不等于“芒果”或“班”

作为一种解决方法,您可以使用AJAX函数在输入第二个单词后覆盖文本框。例如:

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

我不需要整件事。只需要最后一个字,就像谷歌对每个字的建议一样。这对我来说就像预期的一样。我输入“mango bann”,它会返回“bann”。是的,它会返回“bann”,但问题是它不能对此给出建议。如果你单独写“bann”,那么它会在Safari中给出建议,我不会得到任何建议。在我的文本“bann”上加上“bann”这个词。如果你想替换DDLB或其他东西,你真的必须替换整个东西。。。不能使用InnerHTML仅替换选项。
var skw1 = document.getElementById("searchBar").value;
var skw2 = skw1.split(" ");
var skw = skw2[skw2.length-1];
document.getElementById("searchBar").value = skw;