从form.elements中排除输入[type ='image']的历史原因是什么?

时间:2016-09-15 05:05:21

标签: javascript html html5 forms

关于HTML specform.elementslisted elements上有一条说明 “出于历史原因排除图像按钮”

我似乎无法找到历史原因。

1 个答案:

答案 0 :(得分:4)

这是为了与Netscape和早期版本的IE(又称“DOM级别0”)实现的DOM的兼容性,其中图像按钮不被视为表单元素(尽管用户可以清楚地显示input元素与...交互,因此从大多数表单功能中排除。请参阅this Bugzilla report

特别是在Netscape 4中,他们的行为更像是常规图像链接(<a href="..."><img src="..."></a>),而不是IE,例如添加类似于图像链接的边框,根本不支持事件处理程序,虽然IE也有自己的怪癖,特别是当它们被用作提交按钮时。一般来说,图像按钮一直是一团糟,其中很大一部分原因是在HTML 4之前基本上没有明确规定(坦白说,甚至那时)。请参阅有关该主题的Jukka K. Korpela'sAlan J. Flavell's文章。