0

次のコードを使用して、更新せずにフォームの送信時に ajax ファイルをアップロードできる iframe を有効にしています。

これは期待どおりに機能します

window.onload=init; 
function init() {
document.getElementById('form').onsubmit=function() {
    document.getElementById('form').target = 'iframe'; 
            }
        }

私がやりたいことは同じことですがonchange、ファイルフィールド入力の ' '、つまりユーザーがファイルを選択したときに、関数を自動的にトリガーしinit()てファイルをアップロードすることです。私はこのコードで試しました:

document.getElementById('file').onchange=function(){...

これは機能しません。私は完全に立ち往生しています。何か案は?

どうもありがとう

4

3 に答える 3

1

これはあなたのために働くはずです

<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>
于 2011-09-14T17:32:11.593 に答える
0

ファイル入力要素に id を指定し、次のようにします。

$(document).ready(function(){
  $(element).change(function(e){
    fileInfo = e.currentTarget.files[0];
    init();
  });
});
于 2011-09-14T17:12:09.300 に答える
0

.live()のようなものがうまくいけば問題を解決すると思います。使用方法の詳細が必要な場合はコメントしてください...

于 2011-09-14T16:02:02.883 に答える