Php AJAX文件上传onchange,而不是onsubmit

Php AJAX文件上传onchange,而不是onsubmit,php,javascript,ajax,iframe,onsubmit,Php,Javascript,Ajax,Iframe,Onsubmit,我使用下面的代码来实现一个iframe,它允许在提交表单时上传ajax文件而无需刷新 这是意料之中的事 window.onload=init; function init() { document.getElementById('form').onsubmit=function() { document.getElementById('form').target = 'iframe'; } } 我想做的是相同的事情,但在文件字段输入的“onc

我使用下面的代码来实现一个iframe,它允许在提交表单时上传ajax文件而无需刷新

这是意料之中的事

window.onload=init; 
function init() {
document.getElementById('form').onsubmit=function() {
    document.getElementById('form').target = 'iframe'; 
            }
        }
我想做的是相同的事情,但在文件字段输入的“
onchange
”时,即当用户选择了一个文件时,自动触发
init()
函数,从而上载该文件。我已尝试使用此代码:

document.getElementById('file').onchange=function(){...
这不管用,我完全卡住了。有什么想法吗


非常感谢

我认为类似的内容可以解决您的问题,如果您需要有关如何使用它的更多信息,请发表评论…

为文件输入元素提供一个id,并:

$(document).ready(function(){
  $(element).change(function(e){
    fileInfo = e.currentTarget.files[0];
    init();
  });
});

这应该对你有用

<script type="text/javascript">

window.onload = function() {

    // add old fashioned but reliable event handler
    document.getElementById('file_input').onchange = function() {
        // submit the form that contains the target element
        this.form.submit();
    }
}

</script>

<iframe name="my_iframe"></iframe>

<form target="my_iframe"
      action="your/file.ext"
      method="post"
      enctype="multipart/formdata">

    <input type="file" name="my_file" id="file_input">

    <!-- for no js users -->
    <noscript>
        <br/>
        <input type="submit">
    </noscript>

</form>

window.onload=函数(){
//添加老式但可靠的事件处理程序
document.getElementById('file_input')。onchange=function(){
//提交包含目标元素的表单
这个.form.submit();
}
}


听起来很有趣,但我目前没有使用jquery。你知道有没有一种方法可以让它在普通的javascript中工作,因为jquery对于这个小功能来说似乎有些过分。不知道没有jquery的方法,对不起。。。你可能想用谷歌搜索“javascript onflesect”或其他一些东西,但操作并没有明确说明什么是不起作用的。然而,上面的代码确实有效。