почему бы для инпута просто maxlength не задать?