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

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

  1. 利用js代码:document.forms[0].approval.value='false',当点击 <input type="image"按钮向表单传递不同的参数。

    <form action="flow_myTaskList"> <input type="hidden" name="approva ...

  2. document.forms[].submit()

    document.forms['exportServlet'].submit(); (1)document.forms:表示获取当前页面的所有表单 (2)document.forms[0]:表示获取当 ...

  3. document.forms用法

    1.FF中不能接受document.forms("formname")的使用,ie中可以 最好改成document.forms["formname"]的下标用法 ...

  4. document.forms用法示例介绍

    概述 forms 返回一个集合 (一个HTMLCollection对象),包含了了当前文档中的所有form元素. 语法 var collection = document.forms; documen ...

  5. document.forms使用

    定义:document.forms返回form表单的集合,包含了当前DOM结构中所有的form表单. 语法: . 获取当前DOM结构中的第一个form表单. document.forms[] . 获取 ...

  6. document.images、document.forms、doucument.links——>HTMLCollection

    由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点.例如,images.forms.links等属性指向香味类似只读数组的<img>.<form>. ...

  7. document.styleSheets[0]是个啥

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. document.getElementById("searchForm").submit is not a function

    document.getElementById("searchForm").submit is not a function在用userForm.submit() 提交表单的时候, ...

  9. 样式声明对象:document.styleSheets[0].rules[4].style;

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. JS中级 - 01:DOM节点

    1元素属性   1.1childNodes 返回元素的一个子节点的数组 (不推荐,建议用非标准children代替) 提醒:只包含一级子节点,不包含后辈孙级别以下节点. children:返回元素的一 ...

  2. Oracle锁定和解锁用户的命令

    转:http://database.51cto.com/art/200910/158576.htm 在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用 ...

  3. Could not link against boost_system 解决办法

    Could not link against boost_system 解决办法: 先安装 libboost-all-dev ./configure --with-incompatible-bdb - ...

  4. java Integer == 比较的小问题

    示例代码: @Test public void testEquals() { Integer a = 127; Integer b = 127; if(a == b) { System.out.pri ...

  5. 使用nbrbutil工具來處理requested media id is in use, cannot process request

    首先我發現一個Media已經過期很久,但是并不會覆蓋重用 使用bpexpdate手動過期,失敗,讓他deassigned也不行 使用bpimmedia查看上面的image也沒有 我嘗試手動去過期,返回 ...

  6. JavaScript - 引用类型

    对象在JavaScript中被称为引用类型的值. 引用类型和传统面向对象设计中的类相似,但实现不同. Object是一个基础类型,其他所有类型都从Object继承了基本的行为. Array类型,Dat ...

  7. php判断访问的当前设备是手机还是电脑

    <?php function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AG ...

  8. POJ 1061 同余方程

    两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是 它们出发之前忘记了一件很重要的事情,既没有问清楚对方的 ...

  9. error MSB6006: “cmd.exe”已退出,代码为 3。

    VS2012 Qt项目生成提示以下错误: 原因是 generated files 的 debug或release文件夹下的文件不存在.   解决方法:QT5 –>convert project ...

  10. Java常用命令

    jps    查看java进程的PID java -XX:+PrintFlagsInitial    显示所有可设置参数及默认值 java -XX:+PrintFlagsFinal    获取到所有可 ...