form表单提交,上传文件以及提交前验证的问题。
Posted 贾冬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了form表单提交,上传文件以及提交前验证的问题。相关的知识,希望对你有一定的参考价值。
form表单是在开发中比较基础也比较常见的问题了,今天就给大家分享一下有关form表单提交的一些小问题.
首先我们来看一下基本的form结构.这里面我直接引用的bootstrap的form表单的框架。
<form class="form-horizontal" id="form1" name="myForm" action="/cgjxx/fwjl_delete_servlet" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="text" name="email" class="form-control" id="inputEmail3" placeholder="phone"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">Password</label> <div class="col-sm-10"> <input type="password" name="password" class="form-control" id="inputPassword3" placeholder="Password"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label> <input type="checkbox"> Remember me </label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <input type="submit" class="btn btn-default" value="提交"> </div> </div> </form>
简单来说一下form表单提交时候设置的属性:
name="myForm" /*所代表的表单的名字*/
action="/cgjxx/fwjl_delete_servlet" /*表单提交地址*/
method="post" /*提交方式:(get,post)看需要来更换*/
enctype="multipart/form-data" /*规定在发送表单数据之前如何对其进行编码。默认是:"application/x-www-form-urlencoded"*/
注意 a:在提交的form表单中如果包括提交文件(包含input=\'file\'),那么enctype就必需设置成:enctype="multipart/form-data",否则会报错(或者提交失败).
注意 b:的就是 input 标签需要设置name=""值否则提交也会报错(或者提交失败),因为传到服务器的时候也是fname=asdf & lname=asdf 类似这种key=val格式的所以不填也会报错
这样当点击submit按钮的时候表单就会直接提交,但是我们有时候需要做一些验证功能,直接提交就不能验证了,好大家往下看:
解决方案一:将type="submit"改成type="button",把所需要写的验证功能或者其他功能写在function formSubmit(){} 这个方法里面就可以了。
<input type="submit" class="btn btn-default" value="提交">
<input type="button" onclick="formSubmit()" class="btn btn-default" value="signin">
解决方案二:在form 里面加上 onsubmit 属性在提交表单提交时触发,这样也可以解决类似提交前验证等问题。
<form class="form-horizontal" id="form1" name="myForm" action="/cgjxx/fwjl_delete_servlet" method="post" enctype="multipart/form-data">
<form class="form-horizontal" id="form1" name="myForm" action="/cgjxx/fwjl_delete_servlet" method="post" enctype="multipart/form-data" onsubmit="return formSubmit()">
好了分享就到这里,希望可以帮助有需要的朋友,大神路过也请观看指正!!!.
以上是关于form表单提交,上传文件以及提交前验证的问题。的主要内容,如果未能解决你的问题,请参考以下文章
form的onsubmit事件--表单提交前的验证最佳实现方式