イベント処理をクラスにまとめる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"> </span></p>
<p><span id="msg2" class="readonly"> </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;
}
// 数字とスラッシュ
...