form表单提交的几种方法

form表单提交的几种方法form表单提交的几种方法在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮(<inputtype='submit'>)

大家好,又见面了,我是你们的朋友全栈君。

form表单提交的几种方法

在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮
(<input type=’submit’>)就可以进行数据的提交,每一个input标签都需要有一个name属性,才能进行提交

当点击登陆时,向数据库发生的数据是:username=username&password=password.

这种默认的提交方式,一般会进行页面的跳转(不成功时跳转到当前页面)。而有时候我们是对弹出框进行数据提交的,希望提交成功则关闭弹出框并刷选父页面,失败则提示失败原因,且弹出框不关闭。此时可以采用Ajax进行数据提交.

具体参考第四种方案

无刷新页面提交表单

表单可实现无刷新页面提交,无需页面跳转,如下,通过一个隐藏的iframe实现,form表单的target设置为iframe的name名称,
form提交目标位当前页面iframe则不会刷新页面


?
1
2
3
4
<form
action
=
"/url.do"
method=
"post"
target=
"targetIfr"
>
<input type=
"text"
name
=
"name"
/>
</form>  
<iframe
name
=
"targetIfr" style="display:none"
></iframe>

通过type=submit提交

一般表单提交通过type=submit实现,input type=”submit”,浏览器显示为button按钮,通过点击这个按钮提交表单数据跳转到/url.do


?
1
2
3
4
<form
action
=
"/url.do"
method=
"post"
>
   
<input type=
"text"
name
=
"name"
/>
   
<input type=
"submit"
value=
"提交"
>
</form>

js提交form表单

js事件触发表单提交,通过button、链接等触发事件,js调用submit()方法提交表单数据,jquery通过submit()方法


?
1
2
3
4
5
6
7
8
9
10
<form id=
"form"
action
=
"/url.do"
method=
"post"
>
   
<input type=
"text"
name
=
"name"
/>
</form>
<script>
 
document.getElementById(
"form"
).submit();
 
jquery: $(
"#form"
).submit();
 
</script>

ajax异步提交表单数据

采用ajax异步方式,通过js获取form中所有input、select等组件的值,将这些值组成Json格式,通过异步的方式与服务器端进行交互,一般将表单数据传送给服务器端,服务器端处理数据并返回结果信息等


?
1
2
3
4
5
6
7
8
9
10
11
12
<form id=
"form" 
method=
"post"
>
   
<input type=
"text"
name
=
"name"
id=
"name"
/>
</form>
  
var params = {
"name"
, $(
"#name"
).val()}
 
$.ajax({
      
type:
"POST"
,
      
url:
"/url.do"
,
      
data: params,
      
dataType :
"json"
,
      
success:
function
(respMsg){
      
}
   
});

此时可以在callback函数中对请求结果进行判断,然后执行不同的动作(页面跳转或刷选数据、提醒错误都可以)

页面无跳转

如果通过form表单提交请求服务端去下载文件,这时当前页面不会发生跳转,服务端返回void,通过response 去写文件数据,页面会显示下载文件。


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<form
action
=
"/url.do"
method=
"post"
>
   
<input type=
"text"
name
=
"name"
/>
   
<input type=
"submit"
value=
"提交"
>
</form>
 
@RequestMapping(value =
"/url"
)
    
public
void exportFile(HttpServletRequest req, HttpServletResponse response, String rptId)
            
throws Exception {
        
OutputStream
out
=
null
;
        
try {
            
String rptName =
"file"
;
            
String fileName = new String((rptName + excelAble.getFileSuffix()).getBytes(
"GBK"
),
                    
"8859_1"
);
            
response.reset();
            
response.setContentType(
"application/octec-stream"
);
            
response.setHeader(
"Content-disposition"
,
"attachment; filename="
+ fileName);
            
out
= response.getOutputStream();
            
excelAble.exportFile(
out
);
        
} catch (Exception e) {
            
logger.error(e);
        
} finally {
            
if (
out
!=
null
) {
                
out
.
close
();
            
}
        
}
    
}

form表单上传文件

使用form表单进行上传文件需要为form添加enctype=”multipart/form-data” 属性,除此之外还需要将表单的提交方法改成post,如下 method=”post”, input type的类型需要设置为file


?
1
2
3
4
<form
action
=
"/url.do"
enctype=
"multipart/form-data"
method=
"post"
>
    
<input type=
"file"
name
=
"name"
/>
    
<input type=
"submit"
value=
"提交"
>
  
</form>

附件只能通过submit方法进行提交,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155485.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • datagrip2021激活码【2021.10最新】

    (datagrip2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~6EK6WKOHUX-eyJsaWNlbnNlSWQiOi…

  • Cacti插件详解之——Weathermap(1)

    Cacti插件详解之——Weathermap(1)

  • js 给元素添加自定义属性

    js 给元素添加自定义属性给元素添加自定义属性obj.setAttribute(‘attr_name’,’attr_value’);//例如obj.setAttribute(‘class’,’snow-container’)给元素添加class属性的三种方法document.getElementsByTagName(‘body’)[0].className=’snow-container’;//设置为新的…

  • JBPM工作流引擎原理「建议收藏」

    JBPM工作流引擎原理「建议收藏」1.JBPM工作流引擎是用来做什么的首先要说明的一点是工作流引擎指的并不只是JBPM,JBPM只是工作流引擎的一种。JBPM利用JPDL流程定义语言将现实生活中处理事务的业务流程进行抽象,形成一套业务流程规则,只要处理该项业务就必须按照这个流程规则进行。举一个很简单的例子,就拿看医生来讲,看医生的整个流程必须是先挂号,再看病,再抓药,只要你进行看医生这个业务就必须按照这套流程进行。…

  • intellij idea 激活码[最新免费获取]「建议收藏」

    (intellij idea 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlS32PGH0SQB-eyJsaWN…

  • resnet34 pytorch_pytorch参数初始化

    resnet34 pytorch_pytorch参数初始化pytorch是包含一些常见的神经网络模型的,ResNet34、ResNet18、VGG等等,都在models模块中,调用接口如下:model=models.resnet34(pretrained=True,progress=True)预训练pretrained和进度条progress设为True或False就看你自己需求咯~⚠️与此同时,你可能还会遇到pytorch官网的输出类别数与你所需不同:你想分七类,可resnet34官网是1000类,那就调整一下呗:#修改最后线性层的输出通道数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号