我想知道在淘汰赛中是否有办法摆弄http://jsfiddle.net/ult_combo/HzkCw/1/?
我正在努力获得该事件的粘贴价值。我能够使用
触发它self.onScan = function (d, e) {
var inputDate = e;
setTimeout(function () {
var theData = inputDate.target.value;
console.log(theData );
}, 100);
};
并且该元素由
绑定data-bind="event:{ onpaste: onScan }
但是没有得到价值。甚至试图将值绑定到可观察但没有运气。
答案 0 :(得分:1)
您可以访问随事件提供的剪贴板中的粘贴文本。
var ViewModel = function() {
var self = this;
self.pastedText = ko.observable("Start");
self.onPaste = function (vm, event) {
var text = event.clipboardData.getData("text/plain");
self.pastedText(text);
// Indicate that text could be added into textbox
return true;
}
}
ko.applyBindings(new ViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div id="content-placeholder">
<input type="text" placeholder="Paste text" data-bind="event:{ paste: onPaste }">
<div data-bind="text: pastedText"></div>
</div>
答案 1 :(得分:0)
作为对 Romaniuk 问题的一个小补充,KnockoutJS 使自己的事件传入,其中没有 clipboardData
变量。要访问剪贴板数据,您需要访问 originalEvent.clipboardData
:
self.onPaste = function (vm, event) {
var text = event.originalEvent.clipboardData.getData("text/plain");
self.pastedText(text);
// Indicate that text could be added into textbox
return true;
}