如何使选项始终显示,无论输入值是什么
How to make an option always display no matter what the input value is?
我想要一个动态<datalist>
作为输入。
所以我写了这个:
<input type="text" id="newLocationName" list="addressSuggestions" onkeyup="suggestAddress()" autocomplete="off">
<datalist id="addressSuggestions"></datalist>
suggestAddress()
将根据从Google Geocoding API获得的结果,在数据列表中添加一些选项。
"<option value='" + results[i].formatted_address + "'>"
但是,问题是,有时地址不包含输入字符串,因此该选项不会显示,因为值与用户的输入不匹配。
例如,当我输入gee
时,地理编码API将返回地址Gée, 50300 Saint-Jean-de-la-Haize, France
。Gée
与gee
不匹配。所以它不会显示。
因此,我想知道是否有一种方法可以使选项始终显示,无论用户键入什么。
提前谢谢。
编辑:
我使用jQuery自动完成解决了这个问题
只需使用$( ".selector" ).autocomplete( "search", "" );
按空字符串搜索选项即可
不,datalist
行为是由浏览器定义的,(目前)似乎没有办法做你想做的事。
两种选择是:
将结果标准化(例如,将"Gée"预处理为"Gee"在将其添加为
option
之前)。你可能想保留一个将原始文本映射到稍后使用的某个位置。使用一个更强大的组件,如typehead.js,它允许您定义一个自定义的
matcher
,并为此定义Gée==Gee。var matcher = function(results) { return function findMatches(query, callback) { var matches = []; var regex = new RegExp(query, 'i'); results.forEach(function(result) { if(regex.test(result.replace('é', 'e'))) { //etc matches.push(result); } }); callback(matches); }; }; var results = ...; $('.typeahead').typeahead({ hint: true, highlight: true, minLength: 1 }, { name: 'addresses', source: matcher(results) });
相关文章:
- 从HTML表单发布blob的表单输入类型是什么
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- jQuery mobile-保存用户输入的最佳方式是什么
- html表单输入字段验证的正确方法是什么
- 是什么使浏览器自动填充电子邮件/密码输入
- 文本输入控件中任何文本更改的正确 javascript 事件是什么
- 使用javascript从输入文本中检查值的条件是什么
- 使用javascript动态添加输入字段,这些字段是什么'param名称
- 根据用户在Javascript中的输入设置Date()对象的正确方法是什么
- 如何使选项始终显示,无论输入值是什么
- 使用动态生成的表单或html输入标记的最佳实践是什么
- osmtogeojson中不感兴趣的标签的预期输入是什么
- javascript中输入类型文件将图像从客户端上传到服务器的替代方案是什么
- 函数返回true,不管输入是什么
- 当网页加载时,自动聚焦HTML表单输入的最佳方法是什么?
- JavaScript -代码编辑器在必要时跳过输入的更好方法是什么?
- 在Android上获得文本输入Alertdialog框的简单方法是什么?
- 通过安阳语音识别库输入1个以上参数(*val)的最佳/建议方法是什么?
- 使用jQuery检查输入表单字段值(空和null)的正确方法是什么?