年轻正好 2017-01-17
前端时间写项目用到了ajaxForm这个插件,可以用它提交表单和上传图片,听起来和正常的form表单提交没什么区别,只不过是ajax提交,无需刷新页面,如此可以增加用户体验度。
引入两个文件,PS:必须
<script type="text/javascript" src="http://img9.tongzhuo100.com/js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="http://img9.tongzhuo100.com/js/jquery.form.min.js"></script>
使用方法如下:
html代码:
<form method="post" action="#" id="submit"> 标题:<input type="text" name="title" value=""/> 图片:<input type="file" name="image"/> <input type="button" value="提交" id="button"/> </form>
js代码:
<script type="text/javascript"> $('#button').click(function(){ var options = { type:'post', //post提交 url:'http://ask.tongzhuo100.com/server/****.php?='+Math.random(), //url dataType:"json", //json格式 data:{'name':name,....}, //如果需要提交附加参数,视情况添加 clearForm: true, //成功提交后,清除所有表单元素的值 resetForm: true, //成功提交后,重置所有表单元素的值 cache:false, async:false, //同步返回 success:function(data){ //服务器端返回处理逻辑 }, error:function(XmlHttpRequest,textStatus,errorThrown){ alert('操作失败'); } }; $('#submit').ajaxSubmit(options); }) </script>
用法大概就是这样,其中遇到两个坑,本人把ajaxform封装了一个方法,因为项目中多次用到,然后用的同步请求,这样好做处理,但是没有图片上传的情况下,同步是可以的,能够兼容到ie7,但是如果有图片上传,ie 7、8、9 同步就无法做处理了,只能异步了,所以当时只能写成异步了,在success中分别做的处理,比较蛋疼……