今天在做项目的时候发现了一个问题:document.forms[0].submit object is not a function。
这个问题是在用JavaScript 代码来提交一个表单时发生的。
<form action=".action" method="post">
<input type="text" name="member.name"/>
<input type="button" id="submit" value="提交" onclick="postInfo()"/>
</form>
<script type="text/javascript">
function postInfo(){
document.forms[0].submit();
}
</script>
其实问题发生在红色的这两行上:
在调用 document.forms[0].submit()时,一直到document.forms[0]结束程序都能正确运行。问题是这个submit()。
因为在以上代码中。form中有一个id为“submit”的子元素(一个button类型的input元素)。
所以在 执行document.forms[0].submit时。所得到的对象不是forms[0]的submit()函数,而是它的子元素--那个input元素。
input元素是一个DOM节点对象,而不是一个函数。所以就产生了以上的错误(document.forms[0].submit object is not a function。)。
解决方法:
解决方法其实很简单:为那个input元素的id属性赋上个别的值就可以了。
由此产生的注意事项:
为元素赋属性值的时候,尤其是像 name, id,class 这种属性时。尽量使用自定义的有实际意义的字符串。