Javascript 文本输入允许超过3个字符

Javascript 文本输入允许超过3个字符,javascript,Javascript,我有一个用户可以输入姓名首字母的输入。输入的最大长度为3 我有以下几点 personaliseShirt.plInitials = function () { console.log('pressed'); var inputPL = $('.max-length_3'); $(inputPL).on('keyup', function () { var max = 3; console.l

我有一个用户可以输入姓名首字母的输入。输入的最大长度为3

我有以下几点

    personaliseShirt.plInitials = function () {
        console.log('pressed');
        var inputPL = $('.max-length_3');

        $(inputPL).on('keyup', function () {
            var max = 3;
            console.log(inputPL.val.length);
            if (inputPL.val.length > max) {
                inputPL.val = inputPL.value.substring(0, max);
            }
        })
    }
我的问题是,第一个输入字段似乎阻止用户输入超过3个字符,但如果用户有多个字符,则在第一次输入后,其余字段允许输入超过3个字符:/

输入字段的HTML

<input onkeyup="this.value = this.value.toUpperCase();" pattern="[A-Za-z]+" maxlength="3" type="text" class="form-control input-block-level defaultY? max-length_3" max="3" value="" placeholder="Enter Player Initials" name="player_2_9_6" id="player_2_9_6">
任何帮助或建议都会很好

提前谢谢

变量inputPL是一个JQuery数组,其中包含多个元素。在keyup处理程序中,检查此数组的长度,这将不起作用。改用这个:


另外,请检查您是否有意混淆val和value,或者是否需要使用val。

它在firefox和chrome上工作。您可以重复使用此功能

$('input.testinput').on('keyup', function() {
    limitText(this, 3)
});

function limitText(field, maxChar){
    var ref = $(field),
        val = ref.val();
    if ( val.length >= maxChar ){
        ref.val(function() {
            console.log(val.substr(0, maxChar))
            return val.substr(0, maxChar);       
        });
    }
}

其他输入在哪里?所有输入都使用相同的输入,一页上最多可以有10个输入。
$('input.testinput').on('keyup', function() {
    limitText(this, 3)
});

function limitText(field, maxChar){
    var ref = $(field),
        val = ref.val();
    if ( val.length >= maxChar ){
        ref.val(function() {
            console.log(val.substr(0, maxChar))
            return val.substr(0, maxChar);       
        });
    }
}