typeahead选择事件(jQuery)的动态绑定
Dynamic binding of typeahead select event (jQuery)
所以我目前正在创建一个可以动态扩展的表单。表单中每个动态添加的行都包含一个输入字段,该字段使用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']);
});
}
工作良好。
关于如何解决这个问题有什么想法吗?
所以经过一段时间的尝试,我切换了策略。以下代码完成了任务:
$('.CLASS_OF_INPUT_FIELDS').each(function(index,element){
$(element).bind('typeahead:selected', function(obj, data, name) {
$(element).next('.CLASS_OF_HIDDEN_ID_FIELD').val(data['id']);
$(element).val(data['name']);
})
});
您需要在initIdStorageBinding
函数中传递counter
变量,如
function initIdStorageBinding(counter) { // pass counter here
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']);
});
}
或者将计数器变量设置为全局变量,以便可以从任何函数内部访问它。
另外,在我看来,你应该使用类,而不是绑定计数器变量中的每个元素及其id,比如
function initIdStorageBinding(){
stringField = '.your-string-class';
idField = '.other-field-class';
$(stringField).bind('typeahead:selected', function(obj, data, name) {
$(idField).val(data['id']);
$(stringField).val(data['name']);
}
}
相关文章:
- 将值动态绑定到jquery中的切换按钮
- 如何使用AnguarJS动态绑定网站数据
- 在extJS 4.2中,有没有一种方法可以将模型值动态绑定到表单
- 我想在ext.js4.2中将树存储动态绑定到树面板中
- 如何让 AngularJS 选取在 JavaScript 中创建的动态绑定
- Emberjs - 将参数动态绑定到视图
- KnockoutJS删除动态绑定
- jquery验证,动态绑定表单验证
- Jquery:如何动态绑定带有onload事件的文本框
- jQuery动态绑定文件输入并在函数中检索文件
- 如何在选择的按钮上动态/不断地绑定jQuery事件处理程序
- typeahead选择事件(jQuery)的动态绑定
- 在jQuery上动态绑定函数
- 如何使用 jQuery 的 on(.) 动态绑定到多个事件
- 如何从ajax数据动态绑定jquery静态数据
- 如何在jquery中动态绑定更改事件
- 帮助在动态加载的AJAX内容之后重新绑定jQuery
- JQuery Bootstrap Multiselect动态绑定事件处理器
- 如何动态绑定检查属性 usnig jquery.
- 动态绑定元标记 jquery