我在这里尝试自动完成功能,当我在文本框中输入一些东西时,我被困住了,我希望它能击中$('.autoclass').autocomplete({ //mycode,但它没有命中。
My view :
<input type="text" class="autoclass" data-bind="value:$root.email" /> // This hits --(1)
<div class="form-body" data-bind="foreach:dataArray">
<input type="text" class="autoclass" data-bind="value:$root.email" /> //This wont --(2)
</div>那我就知道有什么是错误的..!使用我的代码,即在类.autoclass上尝试了一个更改事件,但结果很遗憾,但有趣的是,在这里,我尝试在foreach之外放置相同的文本框,其中两者都是(自动完成和更改事件),它的工作原理就像一个魅力,其中textbox在循环中有相同的问题,甚至没有命中。
更改事件:
$('input.autoclass').change(function () {
//my code
});据我观察,控制台中没有错误。以前,我使用的是Knockout自动完成,这在我的情况下是无效的(每次进入控制器时,我都需要得到更新的列表,比如jquery自动完成)。
对于动态创建的元素(具有相同类的textbox),在jquery中是否有黑客攻击?
{编辑}
在建议之后,我尝试了JqAuto插件,它工作正常,但这里的问题很小。
示例Fiddle 这里演示了这个问题
当我从textbox-1中选择自动完成数据时,所选的值被绑定到textbox-2,反之亦然。好吧,由于我在value的视图中使用了value,所以我猜它的绑定方式是这样的(两者都可以观察到)。任何其他的办法都可以让这件事成功。
抱歉,如果有什么不清楚,并让我知道,如果有任何额外的信息。
发布于 2015-01-01 10:17:16
问题是,当使用jQuery附加事件处理程序时,它只适用于当前存在的元素。它不将事件处理程序应用于稍后创建的元素,这很可能是由敲除控制的输入的情况。
一种解决方案是跟踪何时添加元素,然后将事件处理程序附加到它们,但是使用事件委托更简单,您可以将事件处理程序附加到没有动态添加和删除的父元素上。例如:
$(document).on("change", "input.autoclass", function() {
});可以将document更改为没有动态添加和从文档中删除的输入的任何父级。
https://stackoverflow.com/questions/27721382
复制相似问题