2016-12-03 11 views
0

としてJavaScriptでタグ全体を渡す:あなたが変更イベントに見ることができるように私はこのように行わjQueryの関数持つパラメータ

function readURL(input) { 
      if (input.files && input.files[0]) { 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        $('#before').attr('src', e.target.result); 
       } 

       reader.readAsDataURL(input.files[0]); 
      } 
     } 

$('#<%=FileUpload1.ClientID%>').change(function() { 
      var l = document.getElementById('popap'); 
      l.click(); 
     readURL(this); 
     }); 

そして、ここではreadURL機能ですこれをパラメータとしてreadURL関数に渡してから、readURL関数内のプロパティにアクセスしています。

私の質問は、ボタンをクリックしてこのイベントが発生した場合、どうすれば同じことができますか?今度は、ファイルアップロード要素で選択されたものをreadURL関数に渡す必要があります。私は、次のようなものを試してみた:

$('#<%=btnEdit.ClientID%>').click(function (e) { 
        e.preventDefault(); 
        var l = document.getElementById('popap'); 
        l.click(); 
        readURL(document.getElementById("FileUpload1")); 
       }); 

をしかし、これは本当に、絵が全く示されていない何もしませんか...?

私は間違っていますか?

+1

だ - それは '' <%= FileUpload1.ClientID%>です。 ASPから実際のIDを抽出して使用する必要があります。これは、ブラウザに表示されるマークアップで使用される実際のIDなのでです。 – Pointy

+0

ええ、それは問題でした、ありがとうございました!!! :) – User987

答えて

0

使用ObjectCreateURL、それは* "FileUpload1" *ないあなたが正しくあなたの最初のサンプルコードをコード化されたように、より速く、実際のID ...

function readURL(input) { 
    if (input.files && input.files[0]) { 
    var url = Object.createObjectURL(input.files[0]); 
    $('#before').attr('src', url); 
    } 
} 
関連する問題