У меня есть мое решение, работающее на 90%, а кнопка «Отправка» отключается, когда пользователь вводит больше допустимых символов, но как только пользователь нажимает на следующий вход, кнопка снова включается.Отключить Отправить на лимит количества символов ввода
В нижней части я попытался добавить оператор if, но, похоже, не имеет никакой разницы. Помощь будет принята с благодарностью. также есть много кода, который повторяется для трех входных данных, чтобы ограничить символы, поскольку там суммы отличаются, и там лучший способ написать это?
function characterLimit() {
var headingMax = 20;
var ribbonMax = 15;
var descriptionMax = 120;
var dh = $('.heading-max');
var dr = $('.ribbon-max');
var dd = $('.description-max');
var btnSubmit = $('#submitBtn');
var inputTitle = $('#createDealTitle');
var inputRibbon = $('#createDealRibbon');
var inputDescription = $('#createDealDescription');
dh.html(headingMax);
dr.html(ribbonMax);
dd.html(descriptionMax);
inputTitle.keydown(function(){
var textLength = $(this).val().length;
var textRemaining = headingMax - textLength;
dh.html(textRemaining);
if (textLength > headingMax) {
dh.addClass('error-text');
$(this).addClass('error-input');
btnSubmit.attr('disabled', true).addClass('disabled');
}else {
dh.removeClass('error-text');
$(this).removeClass('error-input');
btnSubmit.attr('disabled', false).removeClass('disabled');
}
});
inputRibbon.keydown(function(){
var textLength = $(this).val().length;
var textRemaining = ribbonMax - textLength;
dr.html(textRemaining);
if ($(this).val().length > ribbonMax) {
dr.addClass('error-text');
$(this).addClass('error-input');
btnSubmit.attr('disabled', true).addClass('disabled');
}else {
dr.removeClass('error-text');
$(this).removeClass('error-input');
btnSubmit.attr('disabled', false).removeClass('disabled');
}
});
inputDescription.keydown(function(){
var textLength = $(this).val().length;
var textRemaining = descriptionMax - textLength;
dd.html(textRemaining);
if ($(this).val().length > descriptionMax) {
dd.addClass('error-text');
$(this).addClass('error-input');
btnSubmit.attr('disabled', true).addClass('disabled');
}else {
dd.removeClass('error-text');
$(this).removeClass('error-input');
btnSubmit.attr('disabled', false).removeClass('disabled');
}
});
if (inputTitle.val().length > headingMax || inputRibbon.val().length > ribbonMax || inputDescription.val().length > descriptionMax) {
btnSubmit.attr('disabled', true).addClass('disabled');
}else {
btnSubmit.attr('disabled', false).removeClass('disabled');
}
}
characterLimit();
https://jsfiddle.net/gavinthebarbarian/5n9d1Lq2/
Помогает ли это? - https://jsfiddle.net/5n9d1Lq2/2/ – Developer
Почему бы вам просто не использовать атрибуты 'maxlength = '20'',' maxlength =' 15'' и 'maxlength = '110''? – zer00ne