我有这个 HTML:
<input type="text" name="city" autocomplete="off">
<datalist id="seek_list">
<option value="Value1">
<option value="Value2">
</datalist>
和这个 Javascript:
$('input[name=city]').on('keyup', function()
{
if (this.value.length > 1)
{
this.list = 'seek_list';
}
else
{
this.list = '';
}
});
我希望自动完成功能在用户在输入字段中键入 2 个或更多字符后起作用,但这不起作用。数据列表未分配。 我也尝试过这种方法,但没有成功:
<input type="text" name="city" autocomplete="off" list="seek_list">
<datalist>
<option value="Value1">
<option value="Value2">
</datalist>
$('input[name=city]').on('keyup', function()
{
if (this.value.length > 1)
{
$('datalist')[0].id = "seek_list";
}
else
{
$('datalist')[0].id = "";
}
});
唯一有用的是带有此 HTML 的空数据列表:
<input type="text" name="city" autocomplete="off" list="seek_list">
<datalist id="seek_list">
</datalist>
并使用 Javascript 将选项附加到数据列表,但这很慢。
最佳答案
您需要设置元素的属性使用.attr(attributeName, value)
和 .removeAttr(attributeName)
$('input[name=city]').on('keyup', function() {
if (this.value.length > 1) {
$(this).attr('list', 'seek_list');
} else {
$(this).removeAttr('list')
}
});
关于javascript - 如何将数据列表分配给输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37347016/