イベント処理をクラスにまとめる2

by rough cheap

HTML

<form>
  <p>ここにテキストを入力</p>
  <p><input type="text" id="txt" name="txt" size="40"></p>
  <p><span id="msg" class="readonly">&nbsp;</span></p>
  <p><span id="msg2" class="readonly">&nbsp;</span></p>
  <br>
  <br>
  <br>
  <p>入力制御中</p>
  <p><input type="text" id="txt3" name="txt3" size="40"></p>
  <p>読み取り専用</p>
  <p><input type="text" class="readonly" id="copy" name="copy" size="40" readonly="readonly"></p>

</form>

CSS

.readonly {
  background-color: #e6e6e6;
}

input[type=text] {
  border: solid 1px #bbb;
  padding: 5px;
}

JavaScript

var $txt = $("#txt");
var $txt3 = $("#txt3");
var $copy = $("#copy");
var $msg = $("#msg");
var $msg2 = $("#msg2");

/**
 * alter implements of input-validator.js
 */
var INPHandler = (function() {
  // 非Ascii
  var noSbcRegex = /[^\x00-\x7e]+/g;

  var INPHandler = function() {
    if (!(this instanceof INPHandler)) {
      return new INPHandler();
    }
  };

  // 数字のみ
  INPHandler.prototype.keyNum = function(e) {
    // カーソルキー keyCode 37 - 40
    // 数字キー 0~5 which 48 -57
    // BS keyCode8 RET keyCode13 TAB keyCode9 DEL keyCOde46
    if ((e.keyCode < 37 || e.keyCode > 40 ) &&
      (e.which < 48 || e.which > 57) &&
      (e.keyCode != 8 && e.keyCode != 13 && e.keyCode != 9 && e.keyCode != 46 )) {
      return false;
    }
    return;
  };

  // アスキー文字のみ
  INPHandler.prototype.keyAscii = function(e) {
    if ((e.keyCode < 37 || e.keyCode > 40 ) &&
    		(e.which < 32 || e.which > 126) &&
        (e.keyCode != 8 && e.keyCode != 13 && e.keyCode != 9 && e.keyCode != 46 )) {
      return false;
    }
    return;
  }

  // 数字とアルファベットのみ
  INPHandler.prototype.keyNumAlpha = function(e) {
    // カーソルキー keyCode 37 - 40
    // 数字キー 0~5 which 48 -57
    // アルファベット which 65-90 97-122
    // BS keyCode8 RET keyCode13 TAB keyCode9 DEL keyCOde46
    if ((e.keyCode < 37 || e.keyCode > 40 ) &&
      (e.which < 48 || e.which > 57) &&
      (e.which < 65 || e.which > 90) &&
      (e.which < 97 || e.which > 122) &&
      (e.keyCode != 8 && e.keyCode != 13 && e.keyCode != 9 && e.keyCode != 46 )) {
      return false;
    }
    return;
  }

  // 数字とハイフン
  INPHandler.prototype.keyNumHyphen = function(e) {
    // カーソルキー keyCode 37 - 40
    // 数字キー 0~5 which 48 -57
    // BS keyCode8 RET keyCode13 TAB keyCode9 DEL keyCOde46
    if ((e.keyCode < 37 || e.keyCode > 40 ) &&
      (e.which < 48 || e.which > 57) &&
      (e.which != 45) && // ハイフン
      (e.keyCode != 8 && e.keyCode != 13 && e.keyCode != 9 && e.keyCode != 46 )) {
      return false;
    }
    return;
  }

  // 数字とスラッシュ
 ...