2009-12-18 61 views
0

我正好写:HTML:错误输入好还是坏?

<input type="hdnStatus" name="hidden" value="1" /> 

相反的:

<input type="hidden" name="hdnStatus" value="1" /> 

我感到惊讶的是第一行产生不指定正确的类型 一个文本框。

如果第一行生成文本框,然后是低于线的任何使用:

<input type="text" name="tbox" value="" /> 

这肯定是。我的意思是渲染引擎应该足够聪明,以便拒绝任何不正确的输入。这样的事情总会造成混乱和问题。

这是怎么发生的?
这是浏览器的错误还是别的?
或者这是错误的正确?

回答

7

HTML 4.01 spec

属性定义

类型=文本|密码|复选框|无线电|提交|复位|文件|隐藏|图像|按钮[CI] 该属性指定要创建的控件的类型。此属性的默认值是“文本”。

这样看来,您的浏览器回落到默认值类型,如果它是无效的。这对我来说似乎是明智的行为。

+0

Web浏览器旨在支持“差”HTML。 他们必须尽可能多地恢复错误。 – Arno 2009-12-18 14:19:39

2

如果type属性无效,所有浏览器(我知道)都会降级到输入type="text"

有些人甚至提倡使用它来为您的优势做好准备,以获得更多类型的HTML 5。

例如,你可以这样做:

<input type="date" ... 

这将仍然是一个普通的文本框,但事实type是不同的,你可以使用JavaScript/CSS来使它更可用通过增加一个datepicker或自动的东西。

然后,一旦HTML 5真的出现了,浏览器本身就能呈现一个特定于日期的自定义输入小部件。

此功能的另一个用法是type="number",它也是HTML 5中的一种有效类型。使用javascript监视带有类型编号的字段可以在用户输入的数据实际上不是数字时立即向用户反馈。