を入力したときに、私は、ユーザーのプレスがノックアウト を使用して入力すると、検索機能を有効にしようとしていますが、私はテキストボックスに入力して押したときに、ノックアウトがtextbox
ノックアウトキープレスは、プレスが
<!DOCTYPE html>
<html>
<head>
<title>Knockout</title>
<meta charset="utf-8" />
</head>
<body>
<div id="view">
<input type="text" placeholder="Press enter to bind" data-bind="value:textboxValue" data-function="pressEnterToBind"/>
</div>
</body>
</html>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://knockoutjs.com/downloads/knockout-3.4.1.js"></script>
<script>
$(document).ready(function() {
window.vm = (function ($, ko) {
var $view = $("#view");
var textboxValue = ko.observable();
var onPressEnter = function (e) {
if (e.which === 13) {
alert(textboxValue());
}
},
init = function() {
$view.on('keypress', '[data-function="pressEnterToBind"]', onPressEnter);
};
init();
return {
textboxValue: textboxValue
};
}($, ko));
window.vm.binding = (function (ko, vm) {
ko.applyBindings(vm);
})(ko, window.vm);
});
</script>
結果から値を結合しない結合しませんアラートが
keypressの代わりに、keydownで作業しましたか?それで、入力、バックスペース、タブなどの印刷不可能なキーを捕まえる方法です。 – Bindrid
はい、結果は同じです –
あなたのコードは、必要以上に複雑だと思います。たとえば、ビューを作成した直後にコントロールをバインドしていないのはなぜですか?ちなみに、textInputはvalueよりもテキストボックスをバインドするのに適しています。または、本当にキーストロークをキャプチャしたい場合は、独自のバインドを作成します。 – Bindrid