淘汰赛上的活动

时间:2017-09-18 19:48:35

标签: knockout.js

我想知道在淘汰赛中是否有办法摆弄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 }

但是没有得到价值。甚至试图将值绑定到可观察但没有运气。

2 个答案:

答案 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;
}