【发布时间】:2013-07-02 23:16:11
【问题描述】:
我有一个文本输入元素,我希望用户输入城市或邮政编码,并且我想在用户输入文本时触发一个 javascript 函数。我的html如下
<input type="text"
placeholder="Zip Code Or City Name"
class="input-block-level"
data-bind="value: searchterm, valueUpdate: 'afterkeydown', event: { keyup: getZipCodes }" />
在我的视图模型中我有
var getZipCodes = function () {
if (searchterm().length < 2) {
return;
}
datacontext.getZips(searchterm(), zipcodes);
return true;
};
但事实证明 getZipCodes 从未被调用过。
我尝试将数据绑定到“onkeyup”,但没有成功,我确信我正在犯一些微妙的错误。有人可以帮我找出我做错了什么吗?
我尝试将 getZipCodes 更改为 getZipCodes = function(data, event) {...} 但这也不起作用。该函数只是没有被调用。
顺便说一句,我正在尝试做与Knockout event binding for input keypress causes weird behavior 几乎相同的事情
但对我不起作用。
【问题讨论】:
-
您的意思是像 data-bind="value: searchterm, valueUpdate: 'afterkeyup', event: { keyup: getZipCodes }" /> 还是您指的是事件名称 valueUpdate 发生在我很好,只是永远不会调用 getZipCodes 函数。
标签: html data-binding knockout.js single-page-application