【发布时间】:2021-11-16 09:23:17
【问题描述】:
我目前想用“jQuery UI Autocomplete - Combobox”创建以下解决方案: 我从可以选择的数据库中加载条目。如果某个值不存在,则应让用户添加其值。
我目前的依据是:https://jqueryui.com/autocomplete/#combobox
现在我已经适应了“_removeIfInvalid: function(event, ui) ...”
我删除了“//删除无效值”部分,并将其替换为以下行:
$('#name1').append('<option value='+ value + ' selected>'+ value + '</option>');
这也是从原理上起作用的。只有值“#name1”仍然是一个固定值,我目前无法以某种方式获得这个名称。使用“this.input.name”和类似的调用它不起作用。搜索并没有引导我找到解决方案。
为了我的目的,我有什么机会修改“//删除无效值”部分?
提前非常感谢。页面DE
_removeIfInvalid: function( event, ui ) {
// Selected an item, nothing to do
if ( ui.item ) {
return;
}
// Search for a match (case-insensitive)
var value = this.input.val(),
valueLowerCase = value.toLowerCase(),
valid = false;
this.element.children( "option" ).each(function() {
if ( $( this ).text().toLowerCase() === valueLowerCase ) {
this.selected = valid = true;
return false;
}
});
// Found a match, nothing to do
if ( valid ) {
return;
}
$('#name1').append('<option value='+ value + ' selected>'+ value + '</option>');
},
【问题讨论】:
-
如果您查看示例,您可以看到原始元素
this.element被隐藏并且this.input已创建,请参见第 45 行。这个新输入没有 ID 属性。建议使用this.element.find("select")作为目标。
标签: jquery jquery-ui combobox autocomplete