js表单提交和submit提交的区别

 我来答
wyd52x
2016-10-24 · TA获得超过1943个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:631万
展开全部

说“一样的”的都不是专业的前端,至少有以下不同:
假设:
 A表单内有<input type="submit">,通过点击这个input来提交表单
 B表单内没有<input type="submit">,而是写了一个<input type="button">,并且在这个input上绑定了click事件,在事件的监听器内用js的form.submit()提交。

1.在A表单内的某个input type=text,用户正与它交互(它是当前焦点),用户只需要按一下键盘的enter,就能提交表单;而B在某些情况下不行(部分情形参考回车提交表单),只能click下面的button;当然你可以给每个input绑定一个keypress事件,再检测按下的键是不是enter,如果是,就提交……只要不觉得蛋疼。
2.B表单提交不会触发form的 onsubmit事件;A会触发。

另外,还有HTML语义化的区别,A表单的处理更语义化,至于A能在js加载失败时提交表单(起码还能用),B不行之类的,就不说了。

总之,A,<input type="submit">更好,B在用户体验上差的有点多。

作者:佑界
链接:https://www.zhihu.com/question/21316196/answer/17863674
来源:知乎
著作权归作者所有,转载请联系作者获得授权。



js提交和submit按钮提交的区别:

    

    1. js提交表单时不会带上 submit 按钮的值(因为没有被单击) 所有浏览器

    2. input 回车提交 w3c浏览器会带上submit按钮的值,ie6则不会带

    

    解决办法:增加一个hidden域,用这个来判断,无论用哪种方式提交都会有值


submit按钮上绑定提交事件:

即:<input type="submit" name="btn" value="btn" onclick="test()" />

    都会带上submit的值, 用js提交都检测不到onsubmit状态

    w3c: 提交一次 

    ie6: 分两次提交,先js在form提交 

    

    解决办法:如果按钮为submit则 检测时用onsubmit事件检测

     如果按钮为button,则检测通过后在触发submit事件

   

     一定不要用js提交表单,然后又用onsubmit去检测


     单纯的用js提交表单, alert, ff下阻塞表单的提交,而其他浏览

http://www.cnblogs.com/siqi/archive/2012/11/30/2796671.html
找红太郎的灰灰
2016-10-24 · TA获得超过285个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:189万
展开全部
没什么区别,如果非要说的话,就是submit会默认的监控回车,你打回车的话会自动提交。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2017-03-18 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script>

function test()
{
    document.getElementById("myform").submit();    
    alert(11);
}
</script>
<form  name="myfrom" id="myform" method="get" action="b.php">
<input type="text" name="pwd" value="" />
<input type="submit" name="sub" value="111" />
<input type="button" name="btn" value="btn" onclick="test()" />
</form>
</body>
</html>

注意:get方式提交表单时 action里面不能用url传值, post则可以这样传


js提交和submit按钮提交的区别:

1. js提交表单时不会带上 submit 按钮的值(因为没有被单击) 所有浏览器

2. input 回车提交 w3c浏览器会带上submit按钮的值,ie6则不会带

解决办法:增加一个hidden域,用这个来判断,无论用哪种方式提交都会有值


submit按钮上绑定提交事件:

即:<input type="submit" name="btn" value="btn" onclick="test()" />

都会带上submit的值, 用js提交都检测不到onsubmit状态

w3c: 提交一次 

ie6: 分两次提交,先js在form提交 

解决办法:如果按钮为submit则 检测时用onsubmit事件检测

如果按钮为button,则检测通过后在触发submit事件

一定不要用js提交表单,然后又用onsubmit去检测


单纯的用js提交表单, alert, ff下阻塞表单的提交,而其他浏览

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式