jQuery jForm ajax 单击选中文件直接自动上载 无需提交按钮

利用 jQuery 插件 jform 实现文件选中直接上载,无需点提交按钮,完整实例如下:


插件来自 https://github.com/malsup/form/


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="scripts/jquery/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="scripts/jquery/jform/jquery.form.js"></script>
<title>jForm Demo</title>
</head>
<body>
	<div id="ClickMe" style="cursor: pointer; width: 100px; height: 25px; background-color: #00ff00; border-radius: 5px;">Click Me!</div>
	<form id="formUpload" name="formUploadFile" method="POST" enctype="multipart/form-data">
		<input id="fileUpload" type="file" name="upload" style="display: none" />
	</form>
</body>
<script type="text/javascript">
  // form 内的文件选择内容被改变则立即提交
  $('#fileUpload').on('change', function()
  {
    // 当 file 框内容改变则提交 form
    $('#formUpload').submit();
    console.log('formUpload to submit');
  });

  // 定义的热点被单击则打开文件选择框
  $('#ClickMe').on('click', function()
  {
    UploadFileOnSelect();
    console.log('object on click');
  });

  // 选需要上载的图片 上载完毕清除 form
  function UploadFileOnSelect()
  {
    // 打开文件选择框
    console.log('select file');
    var input = document.getElementById("fileUpload");
    input.click();
    // 提交完毕后初始化 form
    $('#formUpload').resetForm();
    console.log('selected file ' + input.value);
  }

  // jquery.form upload
  $('#formUpload').ajaxForm({
    // 设置返回格式
    dataType : 'json',
    // 接收文件的 struts2 action 或者是 servlet 路径
    url : '/struts/uploadMultfile',
    success : function(data)
    {
      // 返回成功信息
      console.log('success: ' + data);
    },
    uploadProgress : function(event, position, total, percentComplete)
    {
      // 实时进度
      console.log('uploadProgress: ', percentComplete + '%', position, 'max:', total);
    },
    error : function(data)
    {
      // 返回错误信息
      console.log('error: ' + data);
    }
  });
</script>
</html>

以下是基于 Google Chrome 的调试信息:



另一个上传组件的使用(推荐):

http://blog.csdn.net/joyous/article/details/52643269


Q群讨论 236201801

.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值