Javascript:根据输入匹配数据列表选项
我有一个带有数据列表的文本输入。此数据列表由php动态填充:Javascript:根据输入匹配数据列表选项,javascript,php,html,input,datalist,Javascript,Php,Html,Input,Datalist,我有一个带有数据列表的文本输入。此数据列表由php动态填充: <input type="text" name="city" list="cities" id="city"> <datalist id="cities"> <?php foreach($cities as $city){ echo '<option value="'.$city.'" />'; } ?>
<input type="text" name="city" list="cities" id="city">
<datalist id="cities">
<?php
foreach($cities as $city){
echo '<option value="'.$city.'" />';
}
?>
</datalist>
</input>
是否有一种简单的方法将所有数据列表选项存储在javascript数组中
编辑:
或者更好:有没有办法用javascript检查输入字段中的文本是否是数据列表中的选项?有:
var cities = <?=json_encode($cities)?>;
var cities=;
是的,有:
var cities = <?=json_encode($cities)?>;
var cities=;
回答你的“或更好的部分”
如果不转换为json数组并运行JavaScript匹配,只需按要求使用JavaScript就可以很容易地做到这一点
附加了一个示例片段。下面的示例检查输入中键入的值是否与任何选项匹配
它是这样做的,在每次输入时,它都会检查数据列表中是否有与用户输入的输入匹配的选项。您可以更改过滤器函数的return
部分以进行任何类型的匹配
$(“#城市”).on('keyup',函数(e){
var option=$('#cities option')。过滤器(函数(){
返回this.value==$(“#城市”).val();
}).val();
if(option)$(“#output”).html(“找到匹配项:”+option)
else$(“#输出”).html(“”);
});代码>
#输出{
边缘顶部:30px;
}
回答你的“或更好的部分”
如果不转换为json数组并运行JavaScript匹配,只需按要求使用JavaScript就可以很容易地做到这一点
附加了一个示例片段。下面的示例检查输入中键入的值是否与任何选项匹配
它是这样做的,在每次输入时,它都会检查数据列表中是否有与用户输入的输入匹配的选项。您可以更改过滤器函数的return
部分以进行任何类型的匹配
$(“#城市”).on('keyup',函数(e){
var option=$('#cities option')。过滤器(函数(){
返回this.value==$(“#城市”).val();
}).val();
if(option)$(“#output”).html(“找到匹配项:”+option)
else$(“#输出”).html(“”);
});代码>
#输出{
边缘顶部:30px;
}