刚刚学习中,使用到了ajaxSubmit,犹豫以前没有接触㢧这个,所以刚开始是一脸懵逼状态,最后通过查找资料的方式,解决了这个问题这个很兴奋,做到了页面的无刷新上传图片,送给看我博客园的朋友一句话:“山高人为峰,努力定成功!”
下面我对ajaxSubmit做一下总结:
1.jQuery引入进去;
2.网上下载jQuery Form插件;
(这里对form插件做一下介绍,因为刚开始做前端的人不一定能懂,
jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地、无侵入地升级HTML表单以支持Ajax。jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能。另外,插件还包括其他的一些方法: formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等。
下载地址:
核心方法 -- ajaxForm() 和 ajaxSubmit()
)
3.首先说用法,ajaxForm和ajaxSubmit都可以接收0或1个参数,该参数可以是一个变量、一个对象或回调函数,这个对象主要有以下参数:
var object= { url:url, //form提交数据的地址 type:type, //form提交的方式(method:post/get) target:target, //服务器返回的响应数据显示的元素(Id)号 beforeSerialize:function(){} //序列化提交数据之前的回调函数 beforeSubmit:function(){}, //提交前执行的回调函数 success:function(){}, //提交成功后执行的回调函数 error:function(){}, //提交失败执行的函数 dataType:null, //服务器返回数据类型 clearForm:true, //提交成功后是否清空表单中的字段值 restForm:true, //提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态 timeout:6000 //设置请求时间,超过该时间后,自动退出请求,单位(毫秒)。 }
<!DOCTYPE html> <html> <head> <title>权限信息展示 </title> <link href="https://www.jb51.net/~/Content/JqueryEasyUi/themes/default/easyui.css" /> <link href="https://www.jb51.net/~/Content/JqueryEasyUi/themes/icon.css" /> <script src="https://www.jb51.net/~/Content/JqueryEasyUi/jquery-1.8.3.min.js"></script> <script src="https://www.jb51.net/~/Scripts/myjqueryform.js"></script>//这里引入 <script src="https://www.jb51.net/~/Content/JqueryEasyUi/jquery.easyui.min.js"></script> <script src="https://www.jb51.net/~/Content/JqueryEasyUi/locale/easyui-lang-zh_CN.js"></script> <script src="https://www.jb51.net/~/Scripts/datapattern.js"></script> <script src="https://www.jb51.net/~/Scripts/jquery.unobtrusive-ajax.js"></script> <script type="text/javascript"> $(function () { //绑定异步上传图片 bindUpLoad(); }); //绑定异步上传图片 function bindUpLoad() { alert("aaaaa"); $("#btnUpLoadFile").click(function () { alert("bbbbb"); $("#AddDiglogDiv form").ajaxSubmit({ url: '/ActionInfo/UploadImg', type: "Post", success: function (data) { alert("ccccc"); //将返回的数据加载到隐藏域 $("#IconImg").val(data); $("#ShowImgDiv").html("<img src='" + data + "'/>"); } }); }); }
HTML代码是这样的:
<body> <!-------------添加对话框 start---------------------> <div> @using (Ajax.BeginForm("AddActionInfo", "ActionInfo", new AjaxOptions() { OnSuccess = "afterAdd" })) { <table> <tr> <td>权 限 名:</td> <td> <input type="text" /></td> </tr> <tr> <td>Url:</td> <td> <input type="text" /></td> </tr> <tr> <td>Http方法类型:</td> <td> <select> <option value="GET">GET</option> <option value="POST">POST</option> </select> </td> </tr> <tr> <td>是否是菜单:</td> <td> <input type="checkbox" value="true" /></td> </tr> <tr> <td>菜单图片地址:</td> <td> <input type="hidden" /> <input type="file" /> <input type="button" value="上传" /> <div></div> </td> </tr> <tr> <td>排 序:</td> <td> <input type="text" /></td> </tr> <tr> <td>备 注:</td> <td> <input type="text" /></td> </tr> </table> } </div> <!-------------添加对话框 end ---------------------> </body> </html>
最终要完成的项目是这样的:
最终我成功的实现了异步无刷新上传图片的功能!