gpt4 book ai didi

knockout.js - 按下 Enter 键时调用函数

转载 作者:行者123 更新时间:2023-12-03 05:48:45 27 4
gpt4 key购买 nike

按下回车键时如何使用 Knockout.js 调用函数。下面是我的代码。

ko.bindingHandlers.enterkey = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var inputSelector = 'input,textarea,select';
$(document).on('keypress', inputSelector, function (e) {
var allBindings = allBindingsAccessor();
$(element).on('keypress', 'input, textarea, select', function (e) {
var keyCode = e.which || e.keyCode;
if (keyCode !== 13) {
alert('a');
return true;
}

var target = e.target;
target.blur();

allBindings.enterkey.call(viewModel, viewModel, target, element);
alert('b');
return false;
});
});
}
};
ko.applyBindings(viewModel);

HTML

<input type="text" data-bind="value:sendMessageText, enterkey: sendMessage" /> 

View 模型

function contactsModel(){
var self = this;
self.jid=ko.observable();
self.userName=ko.observable();
self.sendMsgText=ko.observable();
self.sendMessage = function(){
if(self.sendMessageText() == '' )
alert("Enter something in input field");
else{
var message = {
to : self.userName(),
message : self.sendMsgText()
}
self.sentMessages.push(message);
sendMessage(message);
}

}
}

任何关于这里出了什么问题的想法或更好方法的建议。

最佳答案

不需要自定义绑定(bind),只需使用knockout的按键事件( Knockout docs ):

<input type="text"
data-bind="textInput : keyword,
event: {keypress: onEnter}" >
</input>

你的函数:

that.onEnter = function(d,e){
e.keyCode === 13 && that.search();
return true;
};

JSFiddle example

编辑:来自 Knockout(3.2.0) 的新绑定(bind):textInput - 消除了对 valueUpdate 绑定(bind)的需要。

关于knockout.js - 按下 Enter 键时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23087721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com