2017-09-18 2 views
1

Je me demandais s'il y avait un moyen de faire ce violon http://jsfiddle.net/ult_combo/HzkCw/1/ dans KO?événement Knockout onpaste

J'ai du mal à obtenir la valeur collée sur l'événement. Je suis abble pour déclencher l'aide

self.onScan = function (d, e) { 
      var inputDate = e; 
      setTimeout(function() { 
       var theData = inputDate.target.value; 
       console.log(theData); 
      }, 100); 

     }; 

et l'élément est binded par

data-bind="event:{ onpaste: onScan } 

mais échouerait pour obtenir la valeur. Même essayé de lier la valeur à un observable mais pas de chance.

Répondre

1

Vous pouvez accéder au texte collé du presse-papiers fourni avec l'événement.

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>

+0

Je marqué cela comme la réponse. Il semble fonctionner sur un autre PC que j'ai essayé mais pas sur le mien. J'ai fini par le faire différemment et travaille sur les deux machines. Mon machine a continué à lancer undefined pour clipboardData – Frederick