点击button自动提交表单原因及解决方案
程序员文章站
2022-05-29 19:46:27
...
分析
情景描述
有时候我们可能需要在表单中放置多个按钮,比如表单页面常见的按钮有创建和取消。点击创建按钮会触发单击响应事件,在单击响应事件中进行提交表单,这没有任何问题。点击取消按钮的时候,触发对应的单击响应事件,这个单击响应事件中主要处理关闭表单页面逻辑,所以会关闭页面,这也正常。但是!打开控制台监听请求会发现,它也会提交表单。
图示
关于途中三个按钮的代码片段
<!-- 新增分区按钮 -->
<div class="layui-inline parti-table" style="left:100px">
<button type="button" class="layui-btn layui-btn-normal" data-type="addNewLine">新增分区</button>
</div>
<!-- 确定和取消按钮 -->
<div class="layui-btn-container">
<button type="button" class="layui-btn" lay-submit lay-filter="createIndex" style="margin-bottom: 0px;">
<i class="layui-icon"></i> 确定
</button>
<button class="layui-btn layui-btn-primary" id="cancel" style="margin-bottom: 0px;">
<i class="layui-icon">ဆ</i> 取消
</button>
</div>
原因
出现上述的问题主要是button
标签的type
属性惹的祸,button
的type
属性值有三个分别为button
、submit
、reset
。当我们在利用button
标签写一个按钮且没有指定其type
属性时,IE7
以下版本(具体是IE7以下还是IE5以下给忘了)会默认指定为button
,其他会被默认指定为submit
。当按钮的type
属性被指定为submit
的时候,点击它会提交表单。
解决
当需在form标签中放置一个button
的时候,如果这个按钮不是做提交表单的,切记一定要设置其type
为button
。