document.forms[0].submit object is not a function

今天在做项目的时候发现了一个问题: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 这种属性时。尽量使用自定义的有实际意义的字符串。

时间: 2024-11-03 02:56:38

document.forms[0].submit object is not a function的相关文章

利用js代码:document.forms[0].approval.value=&#39;false&#39;,当点击 &lt;input type=&quot;image&quot;按钮向表单传递不同的参数。

<form action="flow_myTaskList"> <input type="hidden" name="approval" value="true"/> <!-- 表单操作 --> <div id="InputDetailBar" style="float:none"> <!--onclick事件在submit之前触发-

document.forms用法示例介绍

概述 forms 返回一个集合 (一个HTMLCollection对象),包含了了当前文档中的所有form元素. 语法 var collection = document.forms; document.forms['exportServlet'].submit(); (1)document.forms:表示获取当前页面的所有表单 (2)document.forms[0]:表示获取当前页面的第一个表单 (3)document.forms['exportServlet']:表示获取当前页面的nam

.Net 4.0 Convert Object to XDocument

将Object转换为XDocment对象 代码如下: C# – Object to XDocument 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Xml.Linq; 6 using System.IO; 7 using System.Xml.Serialization; 8 using System.Xml; 9 10 n

document.forms 获取 name 得到select 对象

< html > < body > < form name = "t_form" > < select name = "t_select" > < option value = "first" selected > 1 < / option > < option value = "second" > 2 < / option > &

document.styleSheets[0]是个啥

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="css/css.css" /> <style> .css01{ background-image: url(img/01.png); } </style

document.images、document.forms、doucument.links——&gt;HTMLCollection

由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点.例如,images.forms.links等属性指向香味类似只读数组的<img>.<form>.<a>(但只包含哪些有href属性的a标签)元素集合.这些属性指代HTMLCollection对象,他们很像NodeList对象,但是除此之外他们可以用元素的ID或者名字来索引.早些时候我们已经看到用如下的表达式来引用命名的<form>元素: //针对<form name=&qu

js 报错 :object is not a function

object is not a function 我遇到的具体问题是:js命名方法重复了,找到了别的地方,改个方法名就可以了 var h2_price = document.getElementById("h2_price");var h2_tickets = document.getElementById("h2_tickets");var h2_accomd = document.getElementById("h2_accomd"); fu

c++11特性与cocos2d-x 3.0之std::bind与std::function

昨天同事让帮忙写一小功能,才发现cocos2d-x 3.0 和 cocos2d-x 3.0rc0 差别还是相当大的. 发现Label这一个控件,3.0就比rc0版本多了一个创建函数,更为关键的是3.0内的Label锚点是在ccp(0.5,0.5),而一直3.0rc0是ccp(0,0). 累觉不爱.尽管cocos2d-x改变太快,兼容性一次次的暴露出不足,但是,总归是向好的方向进行.于是下载了3.0来玩玩~ cocos new 出新的项目之后,仔细阅读代码,才发现了一句3.0区别于2.0的代码:

JS function document.onclick(){}报错Syntax error on token &quot;function&quot;, delete this token

JS function document.onclick(){}报错Syntax error on token "function", delete this token function document.onclick() //任意点击时关闭该控件 //ie6的情况可以由下面的切换焦点处理代替 {    with(window.event)   { if (srcElement != outObject && srcElement != outButton)