Thứ Ba, 23 tháng 6, 2015

Cách xác định chuỗi mới sau khi nhấn key trong sự kiện keypress

Đây là cách xác định chuỗi mới sau khi nhấn key(có 1 vài check khác nữa)

HTML:

<input type="text" style="width:400px" value="1" class="k-textbox" id="txtSecondsNumberNotIncluded"  />

JavaScript:

//sự kiện keypress textbox ngưỡng giới hạn không tính tiền
    //chỉ cho phép nhập số và ký tự # (3 ký tự)
    self.LimitThresholdNotMoney = function (e) {
        var regex = new RegExp("^[\-0-9#]+$");
        var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (e.keyCode != 8 && !regex.test(key)) {
            e.preventDefault();
            return false;
        }
        // test xem nhập có quá 3 ký tự ###
        var t = $("#txtSecondsNumberNotIncluded").val();

        var position = $("#txtSecondsNumberNotIncluded")[0].selectionStart;
        // chuỗi mới khi press key
        var tnew = [t.slice(0, position), key, t.slice(position)].join('');
        // nếu nhập ký tự # thì chỉ cho phép nhập ### ngoài ra ko nhập gì khác
        if ((key == "#" && tnew != "#" && tnew != "##" && tnew != "###") || (key != "#" && tnew.indexOf("#") > -1)) {
            e.preventDefault();
            return false;
        }
        // check nhập ký tự '-'
        if ((t.indexOf("-") > -1 && key == "-") || (position > 0 && key == "-")) { //45 là ký tự '-'
            e.preventDefault();
            return false;
        }
        // cho phép nhập số - (chỉ duy nhất số -1)
        if (tnew.indexOf("-") > -1 && tnew.length >= 2 && tnew != "-1") {
            e.preventDefault();
            return false;
        }
    }

Không có nhận xét nào:

Đăng nhận xét