0

我有一个文本输入元素,我希望用户输入城市或邮政编码,并且我想在用户键入文本时触发 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 事件绑定几乎相同的事情会导致奇怪的行为

但对我不起作用。

4

1 回答 1

0

如下更改 getZipCodes 的定义后,它开始工作。

function getZipCodes(data, event) {
        if (searchterm().length < 2) {
            return true;
        }

        datacontext.getZips(searchterm(), zipcodes);
        return true;
    };

代替

var getZipCodes = function() 

如果我使用

function getZipCodes()....

它有效,不确定有什么区别。

于 2013-07-05T02:14:51.170 回答