最近在学习JavaScript,在编写一个demo时出现一个错误。为表单中的提交按钮控件定义的id属性值为submit,致使程序出错。如下代码:(js代码省略)
把id属性值改为regist后,程序正常运行
原因介绍:
当表单控件的id为submit等属性值时,由于JavaScript是一种动态语言,它允许动态地为对象增加属性和方法。访问表单控件有一种简单的方法:formObj.elementName, 其中elementName就是表单域的id或者name属性值——这样可视为表单对象有一个elementName属性,也就是说,当表单a内包含id或者name分别为x,y的两个表单域时,相当于为该表单对象增加了x,y两个属性
理解了上面的知识后,不难明白:当指定<form />元素中<input />元素的id属性值为submit时,<form />元素对应的DOM对象就增加了submit属性——这就覆盖了该对象中原有的submit方法,从而导致无法提交表单。
注:如果该按钮不做为<form />元素的子元素,则不会出现任何问题