Advertisement
Guest User

Charities

a guest
May 30th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Register onpaste on inputs and textareas in browsers that don't
  2. // natively support it.
  3. (function () {
  4.     var onload = window.onload;
  5.  
  6.     window.onload = function () {
  7.         if (typeof onload == "function") {
  8.             onload.apply(this, arguments);
  9.         }
  10.  
  11.         var fields = [];
  12.         var inputs = document.getElementsByTagName("input");
  13.         var textareas = document.getElementsByTagName("textarea");
  14.  
  15.         for (var i = 0; i < inputs.length; i++) {
  16.             fields.push(inputs[i]);
  17.         }
  18.  
  19.         for (var i = 0; i < textareas.length; i++) {
  20.             fields.push(textareas[i]);
  21.         }
  22.  
  23.         for (var i = 0; i < fields.length; i++) {
  24.             var field = fields[i];
  25.  
  26.             if (typeof field.onpaste != "function" && !!field.getAttribute("onpaste")) {
  27.                 field.onpaste = eval("(function () { " + field.getAttribute("onpaste") + " })");
  28.             }
  29.  
  30.             if (typeof field.onpaste == "function") {
  31.                 var oninput = field.oninput;
  32.  
  33.                 field.oninput = function () {
  34.                     if (typeof oninput == "function") {
  35.                         oninput.apply(this, arguments);
  36.                     }
  37.  
  38.                     if (typeof this.previousValue == "undefined") {
  39.                         this.previousValue = this.value;
  40.                     }
  41.  
  42.                     var pasted = (Math.abs(this.previousValue.length - this.value.length) > 1 && this.value != "");
  43.  
  44.                     if (pasted && !this.onpaste.apply(this, arguments)) {
  45.                         this.value = this.previousValue;
  46.                     }
  47.  
  48.                     this.previousValue = this.value;
  49.                 };
  50.  
  51.                 if (field.addEventListener) {
  52.                     field.addEventListener("input", field.oninput, false);
  53.                 } else if (field.attachEvent) {
  54.                     field.attachEvent("oninput", field.oninput);
  55.                 }
  56.             }
  57.         }
  58.     }
  59. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement