`
hejiajunsh
  • 浏览: 402786 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

为了你的幸福,请不要把提交按钮(type=button)的name或者id设置为submit

阅读更多

 

使用JavaScript中调用form.submit()不能提交或在IE中提示“对象不支持此属性和方法”问题

<html>
    <head>test</head>
<body>
<script language="javascript">
function dosubmit()
{
var myform = document.getElementById('myform');
myform.submit();
}
</script>
    <form method="post" id="myform">
                <input type="text" value="test" />
                <input type="button" name="submit" value="提交" onclick="dosubmit()" />        
    </form>
</body>
</html>

上述代码在chromium和IE上都不能正常提交,但当把提交按钮的type改为submit时,在用chromium查看这个页面并点击提交按钮,表单会正常提交,但是我们换到IE下面,IE也可提交但却会提示“对象不支持此属性和方法“ 的错误。

这是怎么回事呢?郁闷了我好一段时间,经过查找资料,发现是提交按钮的name="submit"和id="submit"的属性在捣乱。

当把提交按钮的name改成除了submit的其他名字时,提交按钮的type为button或者submit在chromium和ie上均可提交表单,为什么会出现这个问题呢,因为在IE下可以通过 表单.表单元素名称 这样的方式获得一个表单下的所有表单元素,但是巧就巧在这里,如果某个表单元素的名称和表单的方法名重名的话那么IE就会优先将名称解析为某个表单元素,而不是表单的方法,此时就会出现这个神奇的问题了。

 

此时submit已经变成 form 的一个属性了,并不是方法。这下明白了吧。把submit(也就是submit方法)覆盖了。所以要注意提交表单name的命名方式不要和form原有的方法,属性相同,这样会导致原来的form属性方法失效。

 

分享到:
评论

相关推荐

    CSS 文本域和按钮对齐不一致解决方案

    文字要包含在label标签中,并设置行高,否则文字会与文本框的顶 端对齐。...input type=”submit” name=”button” id=”button” value=”提交” /&gt; &lt;/form&gt; //CSS 代码 复制代码代码

    提交按钮的name=’submit’引起的js失效问题及原因

    代码如下: 代码如下: &lt;...&lt;head&gt;&lt;meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″&gt;...form id=”pquery” method=”post” action=”supplierAction!list.a

    表单与javascript

    表单与javascript的课件,ppt中有源码,可以直接复制过来运行,是很好的教学资源: ... &lt;INPUT TYPE="submit" value="提交此表单" &gt; &nbsp;&lt;INPUT TYPE="reset" value="重置"&gt; &lt;/FORM&gt;&lt;/BODY&gt; &lt;/html&gt;

    input标签里面的name与value的区别

    这就是一个按钮) type可选的值如下: button 按钮 checkbox 复选按钮组件 file 文件上传组件 hidden 隐藏域 image 图片区域 password 密码输入文本框 radio 单选按钮组件 reset 重置表单按钮 submit 提交表单按钮 ...

    AJAX避免用户重复提交请求实现方案

    在使用AJAX(jQuery)异步请求数据时,为了避免因某些原因用户同时多次点击按钮,提交重复的请求,我们需要禁用请求提交按钮...input type=”button” id=”submit” name=”submit” value=”submit”&gt; &lt;/body&gt;

    ASP.NET服务器端控件原理分析

    input type=submit name=Button1 value=Button id=Button1 /&gt;  类型为type=submit此类控件点击以后会通过form表单提交,点击以后会作为参数发送到服务端,参数是控件的name属性=控件的value值,服务器端会根据...

    前端与移动开发之表单

    name定义input元素名称/value/checked/maxlength最大长度/submit提交/reset重置/button普通按钮"&gt; 注意: ①input是一个单标签 不独占一行 ②name是表单元素名字 要求单选框和复选框都要有相同的name...

    js模拟点击以提交表单为例兼容主流浏览器

    在实际的应用开发中,我们会常常用到JS的模事件,但有时会遇到一些问题,比如说点击事件,举个简单的例子,点击表单外的“提交”按钮来提交表单。...input id=”subbtn” type=”submit” value=”先别

    网上图书销售数据库+ASP

    '-------------------------------------------------------------------- ' Microsoft ADO ' ...' ' ' ' ADO constants include file for VBScript ' '------------------------------------------------------------...

    asp+ 操作Cookie 方法大全

    &lt;asp:Button type="submit" id="btnGetCookie" text="Get Cookie Details" runat="server" /&gt; &lt;/form&gt; &lt;strong&gt;Details of:&lt;/strong&gt; &lt;asp:label id="lblCookieDetails" runat="server" /&gt; &lt;table border=...

    js模拟点击事件实现代码

    html: 代码如下: 请单击“提交”,测试提交按钮的单击事件也被触发了。&lt;/h3&gt; &lt;button id=”btn”&gt;提交&lt;/button&gt; &lt;form action=”#” method=”get” id=”form”&gt; &lt;input type=”text” name=...

    jQuery完全实例.rar

    在文档的第一个表单中,查找所有的单选按钮(即: type 值为 radio 的 input 元素)。 jQuery 代码: $("input:radio", document.forms[0]); --------------------------------------------------------------------...

    Watir-WebDriver自动化测试指导

    支持哪些浏览器?... ie.button(:name=&gt;"",:id=&gt;"",:index=&gt;n,:type=&gt;"").doclick 输入框 ? ie.text_field(:name=&gt;"").set "变量" ? ie.text_field(:name=&gt;"").value 取text_field值不是用text而是value!

    自己碰上的IE8兼容笔记

    1、IE8的getElementById只支持id,不支持name 如:&lt;input type="text" name="txt1"&gt; IE8中使用:var obj = ...标签的type默认是submit的 所以要么设置一下type=button,要么设置onclick的时候,return false;

    js使用小技巧

    &lt;input type=button value=语言设置 onclick="window.external.ShowBrowserUI("LanguageDialog", null)"&gt; &lt;input type=button value=加入收藏夹 onclick="window.external.AddFavorite("http://www.google.com/", ...

    jQuery详细教程

    &lt;button id="hide" type="button"&gt;隐藏&lt;/button&gt; &lt;button id="show" type="button"&gt;显示&lt;/button&gt; hide() 和 show() 都可以设置两个可选参数:speed 和 callback。 语法: $(selector).hide(speed,callback) $...

    Xpage学习笔记

    &lt;xp:button id="button1" value="按钮控件"&gt; &lt;![CDATA[ var dia = new dijit.Dialog({title:"提示:",style:"width:150px;"}); var pane = document.createElement("div"); pane.innerHTML = "&lt;span&gt;...

    html入门到放弃笔记

    1、创建一个 div 标记 ,增加属性 ,设置 align 属性的值为 center ,设置 id 属性的值为 container,设置 title 属性的值为 这是一个div &lt;div align="center" id="container" title="这是一个div"&gt; 四大标准...

    LayuiForm表单.txt

    form表单元素包括:text 文本输入框,password密码输入框,checkbox复选框,radio单选框,file 文件域,submit表单提交action指向的文件,reset表单清空,image图片提交按钮,button按钮,hidden隐藏域。 select ...

    HTML技术文档

    input name="rpass" type="password" class="register_textBroader" id="rpass" size="26"&gt;&lt;/td&gt; &lt;tr class="register_table_line"&gt; &lt;td width="160" align="right" bgcolor="#E7FBFF"&gt;出生日期: ...

Global site tag (gtag.js) - Google Analytics