前几天我在Mozilla开发人员网络上读到,document.forms[x].element集合将不包含type=“图像”的输入元素。为什么不行?我在Firefox50.1.0上查了一下,果然,我无法在input type="image"中找到document.forms.elements。
我没卡住什么的。我只是想知道为什么会这样(除了src=""属性和它显示的图像之外)。
HTMLFormElement.elements属性返回表单元素中包含的所有窗体控件的HTMLFormControlsCollection (HTML4 HTMLCollection),但具有图像类型属性的输入元素除外。
WHATWG说:
元素IDL属性必须返回根植于form元素的HTMLFormControlsCollection,其筛选器与表单所有者为form元素的列出元素相匹配,但其类型属性处于Image状态的输入元素除外,由于历史原因,这些元素必须被排除在此特定集合之外。
万维网联盟说:
图像按钮状态表示用户可以从中选择坐标并提交表单的图像,或者表示用户可以从中提交表单的按钮。元素是一个按钮,特别是提交按钮。
发布于 2017-01-13 17:58:52
我查阅了很多有关这方面的资料,特别发现这些网站可追溯至1999年7月15日:
http://www.alanflavell.org.uk/www/trysub.html
带有type=image的输入元素专门用作图像映射,并包含其他HTMLFormElement没有或能够实现的属性和特性。我记得它被用于地图和其他图形,用户在地图上选择一个特定的位置,坐标被传送回服务器和它的cgi应用程序,然后根据点击的坐标提供内容。在我看来,它是现代浏览器中为数不多的古旧遗物之一,可以被认为是僵尸特性。
在Mozilla的Bugzilla中,也可以发现一些问题报告了这个元素的异常行为,这些行为既不符合图像,也不符合输入元素:
我无法找到1998年的Netscape Navigator源代码,也不认为会有任何有用的评论在其中。我非常肯定,这个决定是因为图像输入元素是如此怪异、奇怪和不同于其他元素,以至于它不值得在任何方向改变其行为的规范、设计和开发。在JavaScript核心和DOM中将其实现为表单元素是不值得的。
我所发现的一切都导致了这个结论,但是要想有足够的证据,我们需要找到做出决定的人,以及导致这个规范决定的第一个实现的人。当然,从历史的角度来看,这是令人兴奋的。
https://stackoverflow.com/questions/41626103
复制相似问题