2013-07-04 65 views
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 event binding for input keypress causes weird behavior

但对我不起作用的方式。

+0

你的意思是这样 数据绑定= “值:搜索关键词,valueUpdate: 'afterkeyup',事件:{KEYUP:getZipCodes}”/> 或者你是指事件名称 的valueUpdate发生了我justfine, 只是getZipCodes函数永远不会被调用。 – indichimp

回答

0

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

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

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

而不是

var getZipCodes = function() 

如果我使用

function getZipCodes().... 

它的作品,真的不知道有什么区别。

相关问题