Javascript 样式输入文件和自动提交

Javascript 样式输入文件和自动提交,javascript,jquery,css,Javascript,Jquery,Css,我试图有一个单一的文本链接,用户点击它,它会询问用户他/她想要上传哪个文件,然后自动将其发布到表单中。我怎样才能达到同样的效果?我知道我必须为我的文件输入设置样式,但如何让它在文件选择时自动发布 非常感谢您可以调用表单的提交方法。它会将您的页面提交到服务器,您可以在请求的文件集合中获取该文件 您必须在“file”元素的“onchange”事件上调用表单的submit()方法 编辑:在页面中嵌入javascript是不正确的 使用选择器将提交添加到项目。这还使您能够根据请求将功能添加到基本链接

我试图有一个单一的文本链接,用户点击它,它会询问用户他/她想要上传哪个文件,然后自动将其发布到表单中。我怎样才能达到同样的效果?我知道我必须为我的文件输入设置样式,但如何让它在文件选择时自动发布


非常感谢

您可以调用表单的提交方法。它会将您的页面提交到服务器,您可以在请求的文件集合中获取该文件

您必须在“file”元素的“onchange”事件上调用表单的submit()方法



编辑:

在页面中嵌入javascript是不正确的

使用选择器将提交添加到项目。这还使您能够根据请求将功能添加到基本链接

HTML

<form id="myForm">
    <a id="uploadLink" href="#">Upload file</a>
</form>
额外资源 这里有一个链接到


还有一个问题。

好吧,jQuery可能并不总是答案,但我目前正在滥用它-主要是针对选择器和实时内容-无论如何,使用jQuery,解决您问题的最佳解决方案如下:

$('input[type:"file"]').live('change',function(){
    $(this).parents('form').submit();
});
这基本上使任何输入类型的文件自动提交它的父表单-有点过分了您可以通过将输入类型文件选择器更改为您选择的类来轻松地限制这一点


您还可以通过不使用live(我这样做是因为我动态地使用它)使它更轻巧。

JQuery的1.7+版本:

    //wait for an file input to change anywhere in the document
    $(document).on('change', 'input[type="file"]', function () { 
        $(this).parents('form').submit(); //then submit its parent form
    });

是的,我做到了。但是我如何将整个输入转换成文本呢?“上传文件”添加了答案的链接,请查看。这甚至不是上述问题的答案。您需要对表单项进行实时更改——这不是第一个问题的答案。如果你必须开始讲“坏习惯”,至少在Kirtan回答的评论中这样做,而不是在单独的回答中。
$('input[type:"file"]').live('change',function(){
    $(this).parents('form').submit();
});
    //wait for an file input to change anywhere in the document
    $(document).on('change', 'input[type="file"]', function () { 
        $(this).parents('form').submit(); //then submit its parent form
    });