form 表单<input type="button" value="登录" onclick="loginSubmit ()"/> 点击提示 Uncaught TypeError: loginSubmit is not a function

在网上搜了一堆东东,仔细看了一下,再加上实验,发现原因出在<form>中。

<form method="post">
<button type="button" class="signin" id="loginNewSubmit" onClick="javascript:loginSubmit('new');">登录</button>

  form 中使用 button 会默认提交表单,导致两种情况:一是重复提交数据。button 写法 type=“submit”。一种就是onclick方法失效。

建议的写法 <input type="button" onclick="login();"> 、<div class="button" >(js 绑定click事件)

根据个人的实际情形来组合使用 form 和 button、input type="button" 吧。注意的是: 提交表单<input type="button" value="登录" onclick="login()"/> 和<button onclick="login()">登录</button>区别 

html按钮有两种:

<input type="button" value="登录" onclick="login()"/>

和<button onclick="login()">登录</button>

这两种在页面上看起来好像一样没什么区别,但是这两种是有区别的。

1,如果在<form id="loginForm" name="loginForm" action="<%=path%>/hdlogin/login.action" method="post"></form>

标签中,使用<input type="button" value="登录" onclick="login()"/>,要想提交form,

你必须写成<input type="submit" value="登录" onclick="login()"/>,

或者document.loginForm.submit();否则form是不会提交的。

 

2,如果在form中使用<button onclick="login()">登录</button>只要点击就会提交。

<button onclick="login()">登录</button>相当于<input type="submit" value="登录" onclick="login()"/>。

 

今天在使用<button></button>时,我又在js控制表单提交,结果这个action总是莫名其妙的走两次!

根源就是表单提交了两次,一次是<button></button>,一次是document.loginForm.submit();

这个错误很隐蔽,大家以后要注意。

posted @ 2016-11-02 14:01  长风傲天  阅读(5979)  评论(0编辑  收藏  举报
[h1[ [B]天涯雪[/B] [/h1]