form.submit()不能提交表单的错误原因及解决方法

 更新时间:2014年10月13日 17:01:58   投稿:whsnow  
button的id不要设置为submit,否则可能会引起混淆,导致表单的submit()方法不能提交表单

直接上代码把:

<div id="register">

<h4>会员注册</h4>

<div class="formdiv">

<form method="post" action="register.php?action=register" name="register" id="registerForm">

<dl>

<dt>请认真填写以下内容</dt>

<dd class="hasspan">

用户名:<input type="text" name="username">

</dd>

<dd class="hasspan">

密码:<input type="password" name="pwd">

</dd>

<dd class="hasspan">

确认密码:<input type="password" name="pwdagain">

</dd>

<dd id="tximg">

<img src="img/face/m01.gif" alt="选择头像" id="faceimg">

<input type="hidden" name="touxiang" value="">

<label id="imgsrclabel">m01.gif</label>

</dd>

<dd style="margin-right:120px;">

验证码:<input type="text" name="code">

<span>

<img src="code.php" alt="code" id="code" name="code">

<a href="#code" id="change">换一张</a>

</span>

</dd>

<dd class="btns">

<input type="button" name="submit" id="submit" value="注册">

<input type="button" name="quit" id="quit" value="退出">

</dd>

</dl>

</form>

</div>

</div>

表单数据提交到本页面,下面是js处理

/*注册表单提交*/

function formDeal()

{

var btnSubmit = document.getElementById('submit');

var formId = document.getElementById('registerForm');

btnSubmit.onclick = function()

{

//表单的submit()方法不能提交表单

formId.submit();

}


}

如果表单提交,在本页面有一段提示信息

if(!empty($_GET['action']) && $_GET['action'] == 'register')

{

echo '你提交了数据';

exit();

}

结果是测试了许久都没有看到提示信息,以为是代码错了或者方法写错了,仔细核对,在结果官方文档,确认没有出错。

formId.submit()不能提交,就暂时只好把btnSubmit的type改为submit

this.type="submit"

在网上查了资料,原因归结为两点:

1、表单中不能有name=”submit” 的标签

2、表单中不能缺少《enctype=”multipart/form-data”》

经测试,此两点乃荒谬,并没有解决我的问题(或许是我的问题环境不一样)

后来,以为论坛的坛友建议我把注册按钮的ID改个名字,不用submit。改正之后,表单正常提交,提示信息出现。

最后总结:button的id不要设置为submit,否则可能会引起混淆,导致表单的submit()方法不能提交表单。在命名ID时,名字最好不要和现有的api在名称上重复,避免不必要的烦扰。

相关文章

  • Router解决跨模块下的页面跳转示例

    Router解决跨模块下的页面跳转示例

    开始模块化开发项目之后,一个很重要的问题就是页面见的跳转问题,这篇文章主要介绍了Router解决跨模块下的页面跳转示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • js中的getElementById的使用方法

    js中的getElementById的使用方法

    getElementById是JavaScript中的一个DOM方法,用于根据元素的id属性获取HTML文档中的元素,本文给大家介绍js中的getElementById的使用方法,感兴趣的朋友一起看看吧
    2023-10-10
  • Javascript下的keyCode键码值表

    Javascript下的keyCode键码值表

    Javascript下的keyCode键码值表...
    2007-04-04
  • alert中断settimeout计时功能

    alert中断settimeout计时功能

    在测试过程中发现alert会中断settimeout的计时功能,关闭对话框后,settimeout的时间会重头开始计时,而不是从中断处,感兴趣的朋友可以了解下
    2013-07-07
  • NestJs使用Mongoose对MongoDB操作的方法

    NestJs使用Mongoose对MongoDB操作的方法

    这篇文章主要介绍了NestJs使用Mongoose对MongoDB操作的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • fckeditor粘贴Word时弹出窗口取消的方法

    fckeditor粘贴Word时弹出窗口取消的方法

    这篇文章主要介绍了fckeditor粘贴Word时弹出窗口取消的方法,是应用fckeditor时非常实用的技巧,需要的朋友可以参考下
    2014-10-10
  • webpack-dev-server搭建本地服务器的实现

    webpack-dev-server搭建本地服务器的实现

    当我们使用webpack打包时,发现每次更新了一点代码,都需要重新打包,我们希望本地能搭建一个服务器,本文就介绍如何使用webpack-dev-server搭建本地服务器,感兴趣的可以了解一下
    2021-07-07
  • Js逆向实现滑动验证码图片还原的示例代码

    Js逆向实现滑动验证码图片还原的示例代码

    这篇文章主要介绍了Js逆向实现滑动验证码图片还原的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • JS中的Date()使用小结

    JS中的Date()使用小结

    Date() 日期对象是一个构造函数必须使用new来调用创建我们的日期对象,本文给大家介绍JS中的Date()使用小结,感兴趣的朋友一起看看吧
    2024-01-01
  • JavaScript基础进阶之数组方法总结(推荐)

    JavaScript基础进阶之数组方法总结(推荐)

    下面小编就为大家带来一篇JavaScript基础进阶之数组方法总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论