Javascript 文本输入允许超过3个字符
我有一个用户可以输入姓名首字母的输入。输入的最大长度为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
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);
});
}
}