一、jQuery.Form.js 插件的作用是实现Ajax提交表单。
方法:
1.formSerilize() 用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式。
2.clearForm() 清除表单中所有输入值的内容。
3.restForm 重置表单中所有的字段内容。即将所有表单中的字段恢复到页面加载时的默认值。
疑问:ajaxForm()与ajaxSubmit()的区别:
答案:$(“#form1”).ajaxForm();相当于以下两行:
$(“#form1”.submit)(function(){
$(“#form1”).ajaxSubmit();
return false;
})
也就是说ajaxFrom()会自动阻止表单提交。而ajaxSubmit()不会自动阻止表单提交,想阻止表单提交,要自己return false;
技巧1:如果希望表单提交完成后不跳转,那么一行简单的代码就能够实现,几乎与不使用表单提交是一样的:
$("#MailForm").ajaxSubmit(function(message) { alert("表单提交已成功!"); });
注意:ajaxForm()与ajaxForm()都可以没有参数或者接受1个参数。该参数既可以是一个回调函数,也可以是一个options对象。该对象功能非常强大,说明如下:
var options={
url:url, //form提交数据的地址
type:type, //form提交的方式(method:post/get)
target:target, //服务器返回的响应数据显示在元素(Id)号确定
beforeSubmit:function(), //提交前执行的回调函数
success:function(), //提交成功后执行的回调函数
dataType:null, //服务器返回数据类型
clearForm:true, //提交成功后是否清空表单中的字段值
restForm:true, //提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态
timeout:6000 //设置请求时间,超过该时间后,自动退出请求,单位(毫秒)。
}
例子:
页面js代码:
<script type="text/javascript"> //后台请求地址 //var serverurl = 'http://203.195.194.28/php/getsign.php'; //var serverurl = 'http://203.195.194.28/node'; //var serverurl = 'http://203.195.194.28/python'; var serverurl = 'getsign.php'; $(document).ready(function() { initUploadForm(); }); $('input[name=FileContent]').change(function () { initUploadForm(); }); $('body').on('click', '#downloadBtn', function(){ $('#downloadImg').attr('src', $('#downloadUrl').text()); }); $('body').on('click', '#deleteBtn', function(){ var manageUrl = $('#url').text(); if (!manageUrl) { alert('尚未获取管理url'); return false; } manageUrl = manageUrl + '/del'; // 请将以下获取签名的链接换成您部署好的服务端http url // 建议通过业务登陆态检查来增强安全性,避免签名被非法获取 $.getJSON(serverurl + '?type=delete&url='+encodeURIComponent(manageUrl), function(data) { var sign = data.sign, url = manageUrl + '?sign=' + encodeURIComponent(sign); $.ajax({ type: "POST", url: url, data: {}, success: function() { alert('删除成功'); }, contentType:"multipart/form-data", dataType: 'json' }); }); }); $('body').on('click', '#copyBtn', function(){ var manageUrl = $('#url').text(); if (!manageUrl) { alert('尚未获取管理url'); return false; } manageUrl = manageUrl + '/copy'; // 请将以下获取签名的链接换成您部署好的服务端http url // 建议通过业务登陆态检查来增强安全性,避免签名被非法获取 $.getJSON(serverurl + '?type=copy&url='+encodeURIComponent(manageUrl), function(data) { var sign = data.sign, url = manageUrl + '?sign=' + encodeURIComponent(sign); $.ajax({ type: "POST", url: url, data: {}, success: function(ret) { alert('复制成功'); }, error:function(ret) { alert(ret.responseText); }, contentType:"multipart/form-data", dataType: 'json' }); }); }); $('body').on('click', '#queryBtn', function(){ var manageUrl = $('#url').text(); if (!manageUrl) { alert('尚未获取管理url'); return false; } $.ajax({ type: "GET", url: manageUrl, data: {}, success: function(data) { $('#imgInfo').text(JSON.stringify(data)); }, error:function(ret) { $('#imgInfo').text(ret.responseText); }, dataType: 'json' }); }); function initUploadForm () { // 请将以下获取签名的链接换成您部署好的服务端http url // 建议通过业务登陆态检查来增强安全性,避免签名被非法获取 $.getJSON(serverurl, function(data) { var sign = data.sign, url = data.url + '?sign=' + encodeURIComponent(sign); var options = { type: 'post', url: url, dataType: 'json', success:function(ret) { $('#downloadUrl').html(ret.data.download_url); $('#fileid').text(ret.data.fileid); $('#url').text(ret.data.url); $('#downloadRet').show(); }, error:function (ret) { alert(ret.responseText); } }; // pass options to ajaxForm $('#uploadForm').ajaxForm(options); }); } </script>
页面HTML代码:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>腾讯云万象优图 - 示例程序</title> <script type="text/javascript" src="jquery-2.1.4.min.js"></script> <script type="text/javascript" src="jquery.form.min.js"></script> </head> <div> <h2>腾讯云万象优图 - 示例程序</h2> <form id="uploadForm"> <input type="file" name="FileContent"></input> <input id="subbtn" type="submit"> </form> <div id="downloadRet" style="display:none"> <h3>下载链接</h3> <span id="downloadUrl"></span><input id="downloadBtn" type="button" value="下载"><br/> <img id="downloadImg" src=""></img> <h3>文件ID</h3> <div id="fileid"></div> <h3>管理URL</h3> <span id="url"></span> <input id="queryBtn" type="button" value="查询"> <input id="deleteBtn" type="button" value="删除"> <input id="copyBtn" type="button" value="复制"><br/> <span id="imgInfo"></span> </div> </div> </body> </html>
后台getsign.php代码:
<?php require 'include.php'; //生成新的上传签名 //以下信息请到http://console.qcloud.com/image/bucket获取 $bucket = 'test1'; // 空间名称 $projectId = '10000002'; // 项目ID $userid = 0; // 用户ID 可以自定义 默认为0 $fileid = 'sample'.time(); // 自定义文件名 //生成新的上传签名 $url = TencentyunImageV2::generateResUrl($bucket, $userid, $fileid); $expired = time() + 999; $sign = TencentyunAuth::getAppSignV2($bucket, $fileid, $expired); $ret = array('url' => $url,'sign' => $sign); exit(json_encode($ret)); ?>
今天在整合万象优图的时候学习到的,虽然对于高手来说很简单了,但是对于我来说,这是一个增长,无论它难易,对于我的价值是无限的。
评论前必须登录!
注册