使用空input
属性定义的value
标记之间的功能差异
<input name="firstname" type="text" placeholder="First Name" value=""/>
和value
刚刚省略的那个?
<input name="firstname" type="text" placeholder="First Name"/>
这对我来说只是一个干净的代码,如果他们不是真的需要,我很乐意停止使用value
s,而是几乎每一年我都读过的每一篇表格教程包含了它们。
不包括它们会产生负面影响吗?没有它们,我的应用似乎运行正常。
答案 0 :(得分:1)
value
中缺少input
属性等同于value=""
,但直接访问属性的代码(而不是元素节点的value
属性除外) )。
HTML5 CR定义value
attribute,以便当它不存在时,value
属性(“IDL属性”)被设置为空字符串(最初和表单重置)。这准确地反映了浏览器的行为。
因此,考虑
<input id=a>
<input id=b value="">
它们是等价的,document.getElementById('a').value
是空字符串,就像'b'
一样。但是document.getElementById('a').getAttribute('value')
是null
对象,而不是空字符串。 null
对象和空字符串是不同的值,即使它们在==
比较中的行为方式相同。
因此,仅当存在通过getAttribute
方法或attributes
属性访问属性的JavaScript代码时,差异才有意义,这对于像value
这样的属性来说并不常见。而且,即使这样,只有当代码以处理null
和空字符串的方式使用属性时,差异才有意义。
答案 1 :(得分:0)
value
属性对于text
类型是可选的。
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Attributes
答案 2 :(得分:0)
对于'text'类型的输入标记,则value属性是可选的。所以(如果为空)放弃它。
答案 3 :(得分:0)
无论哪种方式,它都完全相同。一个将其设置为默认值(无):
<input name="firstname" type="text" placeholder="First Name"/>
而另一个直接将它设置为空:
<input name="firstname" type="text" placeholder="First Name" value=""/>
因此,这只是偏好。
答案 4 :(得分:0)
在某些非常古老/异国情调的用户代理中,如果没有input
属性,value
元素可能无法正常工作。但是,在大多数情况下,到目前为止,它只占用(某些)字节而实际上没有任何用处。