隨著移動互聯網的不斷發展,由于網絡速度的提高,上傳功能變得越來越常見。在手機上進行上傳操作,有著自己特殊的需求和限制,此時jQuery Mobile可以幫助我們實現這些操作。
jQuery Mobile可以通過FileAPI來獲得用戶上傳的文件,然后通過ajax請求將文件發送到服務器。使用jQuery Mobile的上傳功能必須要加載ajaxForm.js和ajaxForm.css兩個文件,可以通過CDN獲取:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<link rel="stylesheet" href="http://www.jqmobile.com/wp-content/themes/jqm-2/css/jqm-2.css">
接下來,我們需要構建一個表單,使得用戶可以順利的上傳文件。input元素需使用type="file"的類型,這會讓表單的提交方式自動變為POST方法。
<form id="upload_form">
<input type="file" name="image">
<button type="submit">上傳</button>
</form>
最后,我們需要構造一段JavaScript代碼,使得表單能夠自動提交且上傳成功之后加載提示框。
$(document).ready(function(){
$('#upload_form').on('submit', function(e){
e.preventDefault();
$(this).ajaxSubmit({
error: function(xhr){
console.log(xhr.responseText);
alert('上傳失敗,請重試!');
},
success: function(response){
$('#upload_form').hide();
showSuccess();
}
});
});
});
function showSuccess(){
$.mobile.loading( 'hide' );
$.mobile.changePage( "#success_page", { transition: "pop", role: "dialog" } );
}
使用jQuery Mobile實現上傳功能,本質上還是使用了FileAPI和ajax請求這些HTML5技術,可以在移動端流暢的上傳文件。