我有一个文本输入元素,我希望用户输入城市或邮政编码,我想在用户键入文本时触发javascript函数。我的html如下
<input type="text"
placeholder="Zip Code Or City Name"
class="input-block-level"
data-bind="value: searchterm, valueUpdate: 'afterkeydown', event: { keyup: getZipCodes }" />
在我的viewmodel中我有
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
做同样的事情但对我不起作用。
答案 0 :(得分:0)
按照以下方式更改getZipCodes的定义后,它开始工作。
function getZipCodes(data, event) {
if (searchterm().length < 2) {
return true;
}
datacontext.getZips(searchterm(), zipcodes);
return true;
};
而不是
var getZipCodes = function()
如果我使用
function getZipCodes()....
它有效,不确定区别是什么。