Knockout js和jquery autocomplete无法获得价值

时间:2013-11-30 10:44:46

标签: jquery knockout.js autocomplete jquery-autocomplete jquery-ui-autocomplete

我试图获得jquery自动完成的值,我可以这样做,问题是我在foreach循环中的同一页面上有多个自动选择,因此它将始终为所有更改带回相同的值。 图

<tbody data-bind="foreach: new_contact">
  <tr>
      <div data-bind="html: $root.input, attr: { style: 'margin-bottom: 15px' }, event: { change: $root.updateEmailAddress }" /> </div>
  </tr>
</tbody>

模型

root.updateEmailAddress = function(data, event)
{     
  var test = $('.ui-autocomplete-input').val()
  console.log(test)
}

html:$ root.input只是一个包含输入字段的obseravble

我尝试过使用

$(this).find(.ui-autocomplete-input').val()

但我尝试使用jquery似乎无效 任何想法

谢谢

1 个答案:

答案 0 :(得分:1)

创建自定义绑定:

ko.bindingHandlers.autocomplete={
  init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
          $(element).on('change', function() {
             var test=$(this).val();
             console.log(test);
          });
        }
};

然后从change绑定中删除attr部分,并将, autocomplete添加到绑定中。