Visualizzazione dei risultati da 1 a 7 su 7

Discussione: form submit onchange

  1. #1

    form submit onchange

    ragazzi... problemino piccolissimo... vi illustro direttamente la situazione:

    questo è il form

    codice:
    <form action="processupload.php" method="post" enctype="multipart/form-data" id="UploadForm"> 
    <input name="ImageFile" type="file" /> 
    <input type="submit" id="SubmitButton" value="Upload" /> 
    </form> 
    <div id="progressbox"><div id="progressbar"></div ><div id="statustxt">0%</div ></div> 
    <div id="output"></div>

    questo invece è lo script che esegue l'upload con progression bar

    codice:
    <script> 
            $(document).ready(function() { 
    		//elements
    		var progressbox 	= $('#progressbox');
    		var progressbar 	= $('#progressbar');
    		var statustxt 		= $('#statustxt');
    		var submitbutton 	= $("#SubmitButton");
    		var myform 			= $("#UploadForm");
    		var output 			= $("#output");
    		var completed 		= '0%';
    		
    				$(myform).ajaxForm({
    					beforeSend: function() { //brfore sending form
    						submitbutton.attr('disabled', ''); // disable upload button
    						statustxt.empty();
    						progressbox.show(); //show progressbar
    						progressbar.width(completed); //initial value 0% of progressbar
    						statustxt.html(completed); //set status text
    						statustxt.css('color','#000'); //initial color of status text
    					},
    					uploadProgress: function(event, position, total, percentComplete) { //on progress
    						progressbar.width(percentComplete + '%') //update progressbar percent complete
    						statustxt.html(percentComplete + '%'); //update status text
    						if(percentComplete>50)
    							{
    								statustxt.css('color','#fff'); //change status text to white after 50%
    							}
    						if(percentComplete==100)
    							{
    								progressbar.css({"background-color":"#bcdc9d"}); 
    							}
    						},
    					complete: function(response) { // on complete
    					
    						output.html(response.responseText); //update element with received data
    						myform.resetForm();  // reset form
    						submitbutton.removeAttr('disabled'); //enable submit button
    						progressbox.hide(); // hide progressbar
    						$(myform)[0].reset();
    						
    					}
    			});
    			
            }); 
    
        </script>
    ORA... vorrei che l'upload si eseguisse direttamente alla selezione dell'immagine; per esempio:

    codice:
    <input name="ImageFile" type="file" onChange="this.form.submit();" />
    in questa maniera, il form si invia ma senza barra di caricamento... come risolvo ?
    Grazie in anticipo delle risposte

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi
    codice:
    <script> 
            $(document).ready(function() { 
    		//elements
    		var progressbox 	= $('#progressbox');
    		var progressbar 	= $('#progressbar');
    		var statustxt 		= $('#statustxt');
    		var submitbutton 	= $("#SubmitButton");
    		var myform 			= $("#UploadForm");
    		var output 			= $("#output");
    		var completed 		= '0%';
    $('#ImageFile').change(function(){		
    				$(myform).ajaxForm({
    					beforeSend: function() { //brfore sending form
    						submitbutton.attr('disabled', ''); // disable upload button
    						statustxt.empty();
    						progressbox.show(); //show progressbar
    						progressbar.width(completed); //initial value 0% of progressbar
    						statustxt.html(completed); //set status text
    						statustxt.css('color','#000'); //initial color of status text
    					},
    					uploadProgress: function(event, position, total, percentComplete) { //on progress
    						progressbar.width(percentComplete + '%') //update progressbar percent complete
    						statustxt.html(percentComplete + '%'); //update status text
    						if(percentComplete>50)
    							{
    								statustxt.css('color','#fff'); //change status text to white after 50%
    							}
    						if(percentComplete==100)
    							{
    								progressbar.css({"background-color":"#bcdc9d"}); 
    							}
    						},
    					complete: function(response) { // on complete
    					
    						output.html(response.responseText); //update element with received data
    						myform.resetForm();  // reset form
    						submitbutton.removeAttr('disabled'); //enable submit button
    						progressbox.hide(); // hide progressbar
    						$(myform)[0].reset();
    						
    					}
    			});
    			});
            }); 
    
        </script>
    e togli l'evento onchange dal input file e aggiugigli l'id
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    credo che non hai capito, sono certo che è possibile risolvere,
    all'onchange dovrei applicare qualche funzione che attivi l'ajaxForm facendo comunque passare la variabile submitbutton

  4. #4
    Originariamente inviato da cavicchiandrea
    Ops come non detto ho capito male
    e già ;D mi sa di si

  5. #5
    niente da fare... non va ;D grazie comunque

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $("input[name='ImageFile']").change(function(){
        $('form').submit();
    });

  7. #7
    1 a 0 per vindav ;D grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.