我已经将Knockout绑定设置为具有按键事件,因为我希望检测输入字段上的Enter。
如果我有以下情况:
data-bind="event: { keypress: KeyPress }"
而我的视图模型
this.KeyPress = function(data, event) {
console.log(event.keyCode);
}
那么keyCode将按预期显示。
但是,我希望向函数KeyPress
传递一个额外的参数,因此,按照here中的示例,我现在有
data-bind="event: { keypress: function (data, event) { KeyPress('myParam', data, event); return true; } }" />
对应的函数变成了
this.KeyPress = function(p, data, event) {
console.log(event.keyCode);
}
现在,keyCode
属性总是返回0。我可以看到,在event
对象中,为每个按键设置了charCode
属性,但没有设置keyCode
属性(charCode
属性没有太大用处,因为所有不可打印的字符都是0)。
我还可以看到event
对象有一个originalEvent
属性,但这里的keyCode
是相同的,* 即 * 0。
那么,谁能告诉我如何通过函数文本获得keyCode
属性传播呢?
Here is a JsFiddle演示它。
1条答案
按热度按时间wpcxdonn1#
我猜你只有在firefox中才会得到这个结果
0
因此将代码更改为: