我可以在CSS中指定maxlength吗?


85

我可以在CSS中将maxlength属性替换为某些东西吗?

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

Answers:


69

否。这需要在HTML中完成。如果需要,可以使用Javascript设置值。


126

没有。

maxlength用于行为。

CSS是用于样式的。

这就是为什么。


此外,CSS可以globaly应用于任何标签,所以它是没有意义有MaxLength属性应用到一个div或IMG等
丹DIPLO

5
但是,如果您想将maxlength属性应用于一组通用的输入类型(例如,名字,城市,州),并且可以通过网站在不同位置拥有这些输入的多个实例。能够定义一个类(例如“ FirstName”)会很不错,并且他们将该类应用于所有“名字输入” <Input class =“ FirstName”>
Catchops'Dec

@Catchops这是HTML的局限性,使用CSS来解决此问题将是一个丑陋的黑客。这就是为什么大多数Web框架都提供带有自定义组件的模板系统的原因。
加百利


6

我不认为可以,而且CSS应该描述页面的外观而不是页面的功能,因此即使可以,也并不是应该如何使用它。

也许您应该考虑使用JQuery将常见功能应用于表单组件?



3

不是使用CSS,而是可以使用JavaScript模拟和扩展/自定义所需的行为。


2

正如其他人回答的那样,当前没有将maxlength直接添加到CSS类的方法。

但是,这种创造性的解决方案可以实现您想要的。

我在名为maxLengths.js的文件中有jQuery,该文件在站点中引用(ASP的site.master)

运行该代码段以查看其运行情况,效果很好。

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
对于多种字段类型,此代码非常容易复制和粘贴。我保留了一个单独的名为“ maxLengths.js”的jQuery文件,并将其包含在我的网站主文件中。试试看,非常方便!
泰勒·布朗

只是因为您使用HTML类,所以它不是CSS。
nyuszika7h

@ nyuszika7h感谢您对我的回答的赞赏。我会争论,虽然我没有对元素应用任何样式,但是我在解决方案中仍使用级联样式表,因此正在使用CSS。另外,我已经更新了我的答案以反映您的观察。
泰勒·布朗

1

使用$("input").attr("maxlength", 4) ,如果你使用jQuery版本<1.6,$("input").prop("maxLength", 4) 如果你正在使用jQuery版本1.6或更高版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.