关于jquery.form.js上传文件的一些记录
插件:jquery.form.js 上传文件。
<input type="file" name="file" class="layui-upload-file" placeholder="上传文件">
js:
$('input').change(function(){ console.log($(this).val()); //获取文件名 console.log(this.files[0]); //获取的比较详细,包括文件类型,大小... });
获取文件后缀名:
var fileType = 文件名.substring(文件名.lastIndexOf(".") + 1); //获取文件后缀名
校验上传格式,以图片为例:
$('input').change(function(){ var fileName = $(this).val(); if(!fileName){ return; } if(!RegExp('^.*?\.(jpg|png|gif|bmp|jpeg)$', 'i').test(fileName)){ alert('不支持该格式'); return; } console.log('成功'); });
一、jQuery.Form.js 配置选项options
选项 | 说明 |
url | 表单提交数据的地址 |
type | form提交的方式(method:post/get) |
target | 服务器返回的响应数据显示在元素(Id)号 |
beforeSerialize: function($form, options) | 表单数据被序列化之前执行的回调函数,如果在内部return false将终止序列化和提交。 |
beforeSubmit: function(arr, $form, options) | 表单数据被序列化成arr数组,并且在提交前触发的回调函数。 |
error | 提交失败执行的回调函数 |
success | 提交成功后执行的回调函数 |
data | 除了表单数据外,还需要额外提交到服务器的数据 |
iframe | 如果有<input type="file">是否应该使用iframe来上传文件(对旧版本浏览器而言) |
iframeSrc | 为<iframe>元素设定src属性值 |
iframeTarget | 如果你想用自己的iframe来上传文件,可以将Id传给这个属性 |
dataType | 期望服务器返回数据类型 |
clearForm | 提交成功后是否清空表单中的字段值 |
restForm | 提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态 |
timeout | 设置请求时间,超过该时间后,自动退出请求,单位(毫秒) |
forceSync | |
semantic | |
uploadProgress |
二、API
ajaxForm | 增加所有需要的事件监听器,为ajax提交表单做准备。ajaxForm并不能提交表单。在document的ready函数中,使用ajaxForm来为ajax提交表单进行准备。 | 接受0个或1个参数。参数可以是一个回调函数,也可以是一个Options对象。 | $("#formid").ajaxForm(); |
ajaxSubmit | 使用ajax提交表单。 | 接受0个或1个参数。参数可以是一个回调函数,也可以是一个Options对象。 |
$("#formid").ajaxSubmit(); 或 $("#formid").submit(function(){ $(this).ajaxSubmit(); return false; }); |
formSerialize | 将表单串行化(或序列化)为一个查询字符串。这个方法将返回以下格式的字符串:name1=value1&name2=value2。 | 无 | $("#formid").formSerialize(); |
fieldSerialize | 将表单的字段元素串行化(或序列化)为一个查询字符串。当只有部分表单字段需要进行串行化(或序列化)时,使用这个就很方便了。返回以下格式的字符串:name=value1&name2=value2。 | 无 | $("#formid .specialFields").fieldSerialize(); |
fieldValue | 返回匹配插入数组中的表单元素值。该方法以数组的形式返回数据。如果元素值被判定可能无效,则数组为空。 | 无 | $("#formid :password").fieldValue(); |
resetForm | 将表单恢复到初始状态。 | 无 | $("#formid").resetForm(); |
clearForm | 清除表单元素。该方法将所有的text、password、textarea置空,清除select元素中的选定,以及所有radio按钮和checkbox按钮重置为非选定状态。 | 无 | $("#formid").clearForm(); |
clearFields | 清除字段元素。只有部分表单元素需要清除时方便使用。 | 无 | $("#formid .specialFields").clearFields(); |