addEventListener nicht als funktion schreiben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • addEventListener nicht als funktion schreiben?

    hi!

    ich habe ein uploadscript per ajax gefunden und möchte es modifizieren. leider habe ich immer noch ein problem mit dem input.addEventListener. ich möchte es nicht als function haben, da ich das ereignis per div (mein eigener CSS button) aktivieren will.

    hiermal mein JS Code:

    Code:
    function upload(obj)
    {
    	var input = document.getElementById("images"), 
    		formdata = false;
    
    	function showUploadedItem (source) {
    
      		src = source;
    
    	}   
    
    	if (window.FormData) {
      		formdata = new FormData();
    	}
    	
    
     	input.addEventListener('change', function (evt) {
    
    		var i = 0, len = this.files.length, img, reader, file;
    	
    		for ( ; i < len; i++ ) {
    			file = this.files[i];
    	
    			if (!!file.type.match(/image.*/)) {
    				if ( window.FileReader ) {
    					reader = new FileReader();
    					reader.onloadend = function (e) { 
    						showUploadedItem(e.target.result, file.fileName);
    					};
    					reader.readAsDataURL(file);alert(file.fileName);
    				}
    				if (formdata) {
    					formdata.append("images[]", file);
    				}
    			}	
    		}
    		
    
    		if (formdata) {
    			$.ajax({
    				url: "upload.php",
    				type: "POST",
    				data: formdata,
    				processData: false,
    				contentType: false,
    				success: function (res) {
    					document.getElementById("response").innerHTML = res; 
    				}
    			});
    		}
    	}, false);
    }
    und der html code:

    Code:
    <form method='post' enctype='multipart/form-data'>
    <input type='file' name='images' id='images' multiple />
    
    
    
    <div id='ULButton' onclick='upload(this)'>los gehts</div>
    </form>
    jemand eine idee wie ich das ohne "('change', function (evt) {" schreiben kann? denn ursprünglich ist das script so aufgebaut, das der upload schon startet, sobald man die dateien ausgewählt hat, das wollte ich nicht.

  • #2
    problem gelöst und für die die es selber benötigen:

    html:

    Code:
    <form method='post' enctype='multipart/form-data'>
    
    <input type='file' name='images' id='images'  multiple>
    <p onclick='hochladen()'>link anlicken</p>
    
    </form>
    JS:

    Code:
    function hochladen()
    {
    var reader;
    formdata = new FormData();
    
    $.map($('#images').get(0).files, function(file)
    {
    if (!!file.type.match(/image.*/))
    {
    if(window.FileReader)	{reader = new FileReader();reader.readAsDataURL(file);}
    if (formdata)		{formdata.append("images[]", file);}
    }	
    
    $.ajax({
    url: "meinVerzeichnis/upload.php",
    type: "POST",
    data: formdata,
    processData: false,
    contentType: false,
    success: function (res)
    {
    $('response').html(res); 
    }
    });
    	
    });
    }

    Kommentar

    Lädt...
    X