2015-01-05 10 views
12

Desidero disabilitare la copia incolla in un'area di testo utilizzando angularJs. Ho provato a farlo con ng-incolla, in questo modo:Disabilita funzione Taglia, Copia e Incolla per casella di testo usando AngularJs

Controller:

angular.module('inputExample', []) 
    .controller('ExampleController', ['$scope', function($scope) { 

    $scope.val = '1'; 
    $scope.past = function() { 

    console.log("d"); 
    $scope.val =" "; 

    } 
}]); 

HTML:

<input ng-paste="past()" ng-model="val" ng-pattern="/^\d+$/" name="anim" class="my-input" /> 

casella Input contiene dati vecchi (i dati pasta iniziali).

pasta Blocco funziona la seconda volta, cioè se io incollare i dati nella casella di inserimento, i dati saranno presenti, ma su un secondo incollare i dati non saranno incollare, ma il valore dei dati non è vecchio rimosso.

+0

hai provato return false nella funzione passato? –

risposta

0

si può fare in questo modo

app.controller('MainCtrl', function($scope, $timeout) {.... 
....... 
$scope.past = function() { 
    $timeout(function() { 
     $scope.val = " "; 
    }, 0); 
}... 

Ecco l'Demo Plunker

2
Try this; 

<input type="text" ng-paste="paste($event)" ng-model="name"/> 

controller

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.paste = function(e){ 
     e.preventDefault(); 
     return false 
    } 
}); 
+0

Grazie Mehmet Otkun Funziona benissimo – Marimuthu

29

Prova a fare una direttiva che ascolta fot il cut, copy e paste eventi e quindi prevenire l'evento predefinito azione.

app.directive('stopccp', function(){ 
    return { 
     scope: {}, 
     link:function(scope,element){ 
      element.on('cut copy paste', function (event) { 
       event.preventDefault(); 
      }); 
     } 
    }; 
}); 

Utilizzare aggiungendo l'attributo alla casella di input.

<input stopccp ng-model="val" /> 

Plunker

Si potrebbe anche usare le direttive ng-copy, ng-cut e ng-paste ed annullare direttamente l'evento.

<input ng-cut="$event.preventDefault()" ng-copy="$event.preventDefault()" ng-paste="$event.preventDefault()" ng-model="val" /> 

Plunker

+1

Grazie a quantumwannabe – Marimuthu

14

Il modo più semplice:

<input ng-paste="$event.preventDefault();" placeholder='You cannot past here'> 

lavoro here

Problemi correlati