【发布时间】:2015-02-04 10:47:05
【问题描述】:
所以我目前正在创建一个可以动态扩展的表单。表单中每个动态添加的行都包含一个输入字段,该字段使用 jQuery typeahead 插件显示建议。
我正在尝试将 typeahead:selected 绑定到每个新行对应的输入字段。该事件返回数据库中的建议名称及其对应的 ID。
function initIdStorageBinding(){
stringField = '#INPUT_FIELD'+counter;
idField = '#INPUT_FIELD_ID'+counter;
$(stringField).bind('typeahead:selected', function(obj, data, name) {
$(idField).val(data['id']);
$(stringField).val(data['name']);
}
}
只要将 now 行附加到 counter 是当前行的索引的表单,就会调用此函数。
问题:绑定总是将值插入添加到表单的最后一个输入字段,而不是当前选择的字段。
添加绑定非动态如:
function doBindings(){
$('#INPUT_FIELD1').bind('typeahead:selected', function(obj, data, name) {
$('#INPUT_FIELD_ID1').val(data['id']);
$('#INPUT_FIELD1').val(data['name']);
});
$('#INPUT_FIELD2').bind('typeahead:selected', function(obj, data, name) {
$('#INPUT_FIELD_ID2').val(data['id']);
$('#INPUT_FIELD2').val(data['name']);
});
}
工作正常。
关于如何解决这个问题的任何想法?
【问题讨论】:
-
counter 是一个全局变量。 S抱歉,忘记提了
标签: javascript jquery bind typeahead.js selected