Чи можу я вказати maxlength у css?


85

Чи можу я замінити атрибут maxlength чимось у CSS?

<input type='text' id="phone_extension" maxlength="4" />

Відповіді:


69

Ні. Це потрібно зробити в HTML. Якщо потрібно, ви можете встановити значення за допомогою Javascript.


126

Немає.

maxlength - для поведінки.

CSS призначений для стилізації.

Ось чому.


Крім того, CSS можна застосувати глобально до будь-якого тегу, тому не було б сенсу застосовувати властивість maxlength до div або img тощо
Ден Дипло

5
Але що, якщо ви хочете застосувати властивість maxlength до загального набору типів введення (наприклад, ім’я, місто, штат), і ви можете мати кілька екземплярів цих входів у різних місцях через веб-сайт. Було б чудово, щоб мати можливість визначити клас (наприклад, "FirstName"), і вони застосовують цей клас до всіх входів First Name <Input class = "FirstName">
Catchops

@Catchops Це обмеження HTML, і використання CSS, щоб обійти це, було б потворним хаком. Ось чому більшість веб-фреймворків надають шаблонну систему із користувацькими компонентами.
Габріель


6

Я не думаю, що ви можете, і CSS повинен описати, як сторінка виглядає не тим, що вона робить, тому навіть якщо б ви могли, це насправді не так, як ви мали б використовувати її.

Можливо, вам слід подумати про використання JQuery для застосування загальної функціональності до компонентів форми?



3

Не з CSS, але ви можете емулювати та розширювати / налаштовувати бажану поведінку за допомогою JavaScript.


2

Як відповіли інші, наразі не існує способу додавання maxlength безпосередньо до класу CSS.

Однак за допомогою цього креативного рішення можна досягти того, що ви шукаєте.

У мене є jQuery у файлі з ім'ям maxLengths.js, на який я посилаюся на сайті (site.master для ASP)

запустіть фрагмент, щоб побачити його в дії, працює добре.

jquery, css, html:

$(function () {
    $(".maxLenAddress1").keypress(function (event) {

        if ($(this).val().length == 5) { /* obv 5 is too small for an address field, just want to use as an example though */
            return false;
        } else {
            return true;
        }

    });
});
.maxLenAddress1{} /* this is here mostly for intellisense usage, but can be altered if you like */
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input type="text" class="maxLenAddress1" />

Перевага використання цього: якщо вирішено, що максимальну довжину для цього типу поля потрібно виштовхувати або вводити у всій програмі, ви можете змінити її в одному місці. Дуже зручно для довжини полів для таких речей, як коди клієнтів, поля з повним іменем, поля електронної пошти, будь-яке поле, загальне для вашої програми.


1
Цей код дуже легко скопіювати та вставити для різних типів полів. Я зберігаю окремий файл jQuery з назвою "maxLengths.js" і включаю його в майстер свого сайту. Спробуйте, це дуже зручно!
Тейлор Браун,

Просто тому, що ви використовуєте клас HTML, це не CSS.
nyuszika7h

@ nyuszika7h дякую за ваш вдячний внесок у мою відповідь. я б сперечався, поки я не застосовую будь-який стиль до елемента, я все ще використовую каскадну таблицю стилів у своєму рішенні, тому використовується CSS. крім того, я оновив свою відповідь, щоб відобразити ваші спостереження.
Тейлор Браун,

1

Використовуйте, $("input").attr("maxlength", 4) якщо ви використовуєте jQuery версії <1.6 і $("input").prop("maxLength", 4) якщо ви використовуєте jQuery версії 1.6+.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.