jQuery:如何获得文件上传输入字段的“值”
问题描述:
是否有可能确定用户是否使用javascript/jQuery为特定输入类型=“文件”字段选择了文件?jQuery:如何获得文件上传输入字段的“值”
我为ExpressionEngine(基于PHP的CMS)开发了一种自定义字段类型,允许用户在Amazon S3上载和存储他们的文件,但最受欢迎的EE托管服务已将max_file_uploads限制设置为20。允许用户上传20个文件,再次编辑该条目以再添加20个等等。不幸的是,在编辑该条目时,最初的20个文件具有“替换该图像”文件输入字段,该字段似乎正在敲除上传新图像的可能性。当表单提交时,我想通过javascript删除任何未使用的文件输入字段。
答
是 - 如果需要,您可以读取该值,甚至可以绑定到change
事件。
<html>
<head>
<title>Test Page</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function()
{
$('#tester').change(function()
{
console.log($(this).val());
});
});
</script>
</head>
<body>
<input type="file" id="tester" />
</body>
</html>
但还有其他的多上传解决方案可能更适合您的需求,例如发布bpeterson76。
答
上传者已真的很好,我的目的:http://webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/
的好处是用它作为你的编码方式的基准是文件被上传异步,所以没有必要在一个时间限制为20。在用户搜索时做上传有一定的UI优势。
调整大小也是一个不错的功能,如果你需要它!
答
此代码将从形式除去所有的空文件输入,然后提交:
HTML:
<form action="#">
<input type="file" name="file1" /><br />
<input type="file" name="file2" /><br />
<input type="file" name="file3" /><br />
<input type="file" name="file4" /><br />
<input type="file" name="file5" /><br />
<input type="submit" value="Submit" />
</form>
的JavaScript:
$(function() {
$("form").submit(function(){
$("input:file", this).filter(function(){
return ($(this).val().length == 0);
}).remove();
});
});
欣赏它。没有想到.val()会在文件输入中返回任何东西,我猜应该只是试过了:)多次上传的东西不太符合我这次想要去的方向,尽管通常我同意。再次感谢。 – 2010-07-19 15:11:29
文件输入字段完全可读 - 只是不可写。 – 2010-07-19 15:21:11