我对maxlength
和size
属性之间的区别感到有点困惑。
<input type="text" name="telephone" maxlength="30" size="34">
我知道maxlength
用于控制输入数据。那么一次使用这两个属性的原因是什么?
答案 0 :(得分:39)
maxlength
(非max-length
)属性指定输入字符串的最大长度(以字符为单位),更确切地说,以代码单位表示。希望浏览器通过拒绝接受更多字符来强制执行此操作。但是,这并不意味着可以作为一种安全措施,因为它可以被忽视。相反,它告诉用户在处理数据时不再接受任何字符。当您必须设置上限时,这非常有用,例如:您的数据库只能存储固定数量的字符fpr一些信息,并且当长度存在逻辑限制时(例如,如果数据是美国州的双字母代码,则其逻辑上限为2) )。
maxlength
属性因此是合乎逻辑的,并且甚至可以在非可视用户界面中工作。它并不意味着以任何方式影响输入字段的视觉外观。
相比之下,size
属性仅用于视觉渲染。根据“平均”字符,它建议字段的可见宽度。这个模糊的概念在规范中尚未阐明,并且浏览器不一致地实现它。使用等宽字体时效果最佳。此属性不限制输入的字符数,但会影响可用性:例如,在一个字段中输入30个字符长的字符串很困难,一次只能看到10个字符。字段的宽度也是给用户的信号:它表示输入的预期最大宽度。
通常适合使用这两个属性,通常具有相同的值。例如,如果该字段是5位数的邮政编码,则size=5 maxlength=5
是合适的,特别是如果您还设置了font-family: monospace
,那么实际宽度或多或少恰好是五位数。
但是,值可能不同。例如,当在邮政地址中要求一行时,您可以设置size=30
,因为这通常足够一行,但maxlength=80
,如果这对应于您的数据库或数据处理设置的限制并且你没有特别的理由不这么长的路线。
size
属性原则上可以替换为CSS,因为它仅处理视觉呈现。但是,宽度通常最好用字符设置,并且CSS中字符的平均宽度没有普遍支持的单位;新的ch
单元接近,但不完全相同,旧浏览器不支持。
答案 1 :(得分:5)
max-length
用于表示可以在输入字段中输入的字符数,无论字段在屏幕上显示的大小。 size
属性确定字段在屏幕上的宽度。
。例如,我通常将此用于输入电子邮件地址等可能相当长的内容,但出于美观原因(良好的网页设计),您希望输入字段具有一定的长度。
<input type="text" name="email" maxlength="50" size="20">
一旦用户为其电子邮件地址输入超过20个字符,该字段就会在键入时开始滚动。
答案 2 :(得分:0)
最大长度是指输入字符串的最大可能长度。大小是指输入本身的大小。
答案 3 :(得分:0)
maxlength
属性可用于更改输入字段的大小(屏幕上的字段有多宽),其中 @Select(state => state.alert.alerts)
alerts$: Observable<any[]>
ngOnInit(): void {
this.alerts$.subscribe(alerts => {
if (alerts) {
this.alertSubject.next(alerts[0])
}
})
}
属性可用于定义输入的最大字符数领域。
答案 4 :(得分:-2)
size
&#34;多大&#34;它应该在屏幕上。 max-length
是浏览器允许在字段中输入的最大字符数。他们根本不相关。如果你想成为一个虐待狂的页面设计师,你可能有size = 50 kajillion, max-length=1
。