JSFiddle - React, Tailwind, and code Playground

by pcgupta17

HTML

<label for="txtAny">gms</label>
<input name="txtAny" id="txtAny" class="customonly" />
<br>
<label for="txtAnyChar">charecter</label>
<input name="txtAnyChar" id="txtAnyChar" class="customonly" />
<br>
<label for="txtKnot">knot</label>
<input name="txtKnot" id="txtKnot" class="customonly" />

JavaScript

jQuery.fn.forceNumeric = function () {
    return this.each(function () {
        $(this).keydown(function (e) {
            var key = e.which || e.keyCode;
            if (!e.shiftKey && !e.altKey && !e.ctrlKey && key >= 48 && key <= 57 || key >= 96 && key <= 105 || key == 8 || key == 9 || key == 13 || key == 35 || key == 36 || key == 37 || key == 39 || key == 46 || key == 45) return true;

            return false;
        });
    });
}

jQuery.fn.forceCharecters = function () {
    return this.each(function () {
        $(this).keydown(function (e) {
            var key = e.which || e.keyCode;
            if (
            key >= 48 && key <= 57 || key >= 96 && key <= 105) return false;
            return true;
        });
    });
}

$(document).ready(function () {
    var arrForNum = ['gms', 'rs', 'knot'];
    $('body').find('.customonly').each(function () {
        var id = this.id;
        var res = $('label[for=' + id + ']').text();     
        if ($.inArray(res, arrForNum) >= 0) {
            $(this).forceNumeric();
        } else {
            $(this).forceCharecters('chars');
        }
    });
});