前言
本文是我本人在开发网页时,在表单中加入了button按钮,本来是用于jquery点击相应事件的按钮,然后,但我点击button时,发现不是达到jquery指定效果,原本以为class标签或者其他代码写错,找了很久,之后查找资料,知道表单form提交除了submit提交还有button也会提交,所以总结如何处理不然button 提交表单,在本文中,我们将讨论网页表单(form)中提交的两种方式。
解决方案
return false
一种是在jquery代码最后加一句:return false,禁止表单提交;
在jquery事件处理函数中,返回false可以阻止表单的默认提交行为。这意味着当用户点击按钮时,表单不会执行提交操作。这种方法适用于需要在点击按钮后执行其他操作(如ajax请求)的情况。
type为button
另一种是定义button标签方式为:新增一个附件即指定type为button
在html中,<button>元素有两种类型:submit和button。默认情况下,<button>元素的类型为submit,这意味着当用户点击按钮时,表单将执行提交操作。通过将<button>元素的type属性设置为button,我们可以阻止按钮的默认提交行为。这种方法适用于不需要执行表单提交,只需要执行其他操作(如javascript事件处理)的情况。
以下是一个表单上传文件并且可以在页面添加多个file的前台页面代码:
<%@ page language="java" contenttype="text/html; charset=utf-8"
pageencoding="utf-8"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><title>insert title here</title>
</head><script type="text/javascript" src="${pagecontext.request.contextpath }/script/jquery-1.7.2.js"></script><script type="text/javascript">
$(function(){
//全局变量
var i=2;
//通过表格来进行操作
$("#addfile").click(function(){
alert("www");
$(this).parent().parent().before("<tr class='file'><td>file"
+ i +":</td><td><input type='file' name='file"
+ i +"'/></td></tr><tr class='desc'><td>desc"
+ i +":</td><td><input type='text' name='desc"
+ i +"'/><button type='button' id='delete"
+ i +"'>删除</button></td></tr>");
i++;
//获取新添加的删除按钮
$("#delete"+(i-1)).click(function(){
//获取要删除的行即desc
var $tr=$(this).parent().parent();
//file行也要删除删除
$tr.prev("tr").remove();
$tr.remove();
//对i重新排序
$(".file").each(function(index){
var n=index+1;
$(this).find("td:first").text("file"+n);
$(this).find("td: last input").attr("name","file"+n);
});
$(".desc").each(function(index){
var n=index+1;
$(this).find("td:first").text("desc"+n);
$(this).find("td: last input").attr("name","desc"+n);
});
});
//return false,禁止提交表单
return false;
});
});
</script>
<body>
<font color="red">${msg }</font>
<br><br>
<form action="uploadservlet" method="post" enctype="multipart/form-data">
<input type="hidden" id="filenum" name="filenum" value="1"/>
<!-- 通过表格包装成一个整体 -->
<table>
<tr class="file">
<td>file1:</td>
<td><input type="file" name="file1"/></td>
</tr>
<tr class="desc">
<td>desc1:</td>
<td><input type="text" name="desc1"/></td>
</tr>
<tr>
<td><input type="submit" id="submit" value="提交"/></td>
<!-- 必须指定类型是type="button"否则,点击后会提交表单 -->
<td><button type="button" id="addfile">新增一个附件</button></td>
</tr>
</table>
</form>
</body>
</html>
总结
- 当需要在点击按钮后执行其他操作(如ajax请求)时,可以在jquery事件处理函数中返回
false以禁止表单提交。 - 当不需要执行表单提交,只需要执行其他操作(如javascript事件处理)时,可以将
<button>元素的type属性设置为button以阻止按钮的默认提交行为。
到此这篇关于javascript网页表单form中禁止自动提交的两种方式的文章就介绍到这了,更多相关javascript form禁止自动提交内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论