jquery自动完成具有未知id的动态插入元素
jquery autocomplete for dynamically inserted elements with unknown id
我们在静态表单上有自动完成功能:
$(function() {
return $('#bom_part_name_autocomplete').autocomplete({
minLength: 1,
source: $('#bom_part_name_autocomplete').data('autocomplete-source'),
select: function(event, ui) {
$(this).val(ui.item.value);
},
});
});
当用户选择零件名称时,上面的自动补全将填充零件名称。现在,我们想将自动完成添加到动态插入的元素中。以下是我们需要考虑的几件事:
- 元素id在插入之前是未知的
- 在同一表单上可以插入多个元素
- 动态插入元素的id总是以"bom"开头,以"partnameautocomplete"结尾。自动完成需要将id与这种类型的模式相匹配
- ID中的数字因元素而异。例如第一次插入的id可以是CCD_,第二次插入的id可以是
'bom_123456987_part_name_autocomplete'
我们发现的在线示例都没有未知的元素ID。是否可以对ID未知的动态元素执行自动补全?如果能够做到这一点,我们将不胜感激。
更新:这是创建元素的rails代码:
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render :partial => association.to_s, :locals => {:f => builder, :i_id => 0}
end
link_to_function(name, "add_fields(this, '"#{association}'", '"#{j fields}'")")
end
以下是add_fields()的javascript:
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g");
$(link).parent().before(content.replace(regexp, new_id));
}
好吧,在插入元素后,您可以执行以下操作:
$('[id^=bom_][id$=_part_name_autocomplete]').each(function(){
$(this).autocomplete({ // ...
})
通过
通过ID引用元素并不是选择它的唯一方法。
您可以在创建元素时添加自动完成:
function create_element(data) {
var field = $("<input/>")
field.data('autocomplete-source', data)
$(field).autocomplete({
minLength: 1,
source: $(field).data('autocomplete-source'),
select: function(event, ui) {
$(this).val(ui.item.value);
},
});
return field
}
相关文章:
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 在iframe代码中动态插入子id
- 如何为动态创建的元素分配唯一的id-Javascript
- 使用getElementById设置动态ID的输入字段的样式
- Php,Javascript-动态表单id's和动态验证
- 动态添加id's到输入字段
- Javascript:获取具有动态id的文本框值
- 如何将value和id动态添加到html下拉选项标记中
- Jquery通过id动态选择对象使用字符串
- 根据ID动态创建元素(Jquery)
- 如何最好地搜索基于特定元素的id动态生成的自定义列表?
- 使用jQuery通过ID动态修改元素属性
- Jquery getjson为每个id动态点击时- ruby on rails
- 通过id动态访问对象数据
- 在d3.js中使用县Id动态地在地图中插入圆圈
- 使用jQuery将ID动态分配给当前表行tr
- 使用Jquery根据可拖放对象的ID动态更改图像的src
- 如何将id动态添加到每个蓝色圆圈中
- 如何通过id动态选择JQuery元素
- 如何设置ID动态创建的文本框在JavaScript