是`<element>`到`<element> </element>`有效吗?</element>

时间:2012-04-29 00:07:33

标签: javascript html

<element />的元素替换为<element></element>是否有效。在这种情况下,我想拥有,

<input {attributes}></input>

这样我就可以在其中添加验证数据......也可以从<br /><hr />等处添加验证数据吗?

4 个答案:

答案 0 :(得分:2)

<input>代码没有</input>,也没有必要。 <br><hr>也是如此。您可以使用以下自定义属性将验证数据作为属性放在输入标记(或任何标记)上:

<input type="text" data-validate="num">

如果验证的含义是您要在输入标记附近显示的单独HTML,请将其放在<input>标记之前或之后的自己的标记中:

<input type="text"><span class="validHint">This field accepts only numbers</span>

答案 1 :(得分:2)

<input></input>在HTML4.01和HTML5中均无效。

根据W3C's validation service :(突出显示的原因)

  

验证输出:1错误

     

第9行,第15栏:迷路结束标记输入。
     &LT;输入&GT;&LT; /输入&GT;

所以,你去,你不能用<input>替换<input></input>

答案 2 :(得分:0)

如果要将数据附加到元素,为什么不使用data-*属性? (例如<input data-color="red" />)这是有效的,应该同样容易实现。

答案 3 :(得分:0)

在HTML 4.01之前的经典HTML中,<input></input>无效。实际上,浏览器会忽略杂散结束标记。他们不会忽略标记之间的内容,因此<input>foo</input><input>foo相比没有任何结果。 HTML5不建议更改此内容。

根据XHTML规范,在XHTML中,<input></input>是有效的,但不应在Web上使用。如果在标记之间放置任何内容,它将变为无效,因为已使用EMPTY内容模型声明了input元素。

所以你应该采取一种完全不同的方法。这实际上取决于你想要达到的目标,并且应该在其他标题下进行讨论。根据问题,解决方案可能是新的HTML5属性之一,或data-属性,隐藏字段,或某种方式隐藏的元素,或者可能只是文档树中的数据。