Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128

    onsubmit solo su un bottone

    Salve,

    ho un form con due bottoni: approva e modifica.

    Io vorrei che lo script con i campi obbligatori fosse richiamato solo se clicca su approva. Quindi se metti un Onsubmit generico non funziona, perchè mi richiede i campi obbligatori anche se modifico.

    Se metto l'evento onclick solo sul bottone di approva, non funziona proprio.

    Help!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se scegli correttamente gli elementi type="submit" e type="button" e di quest'ultim gestisci l'evento onclick risolvi tutto.

    Questo come info generale dato che non hai postato nemmeno una riga di codice e ci tocca provare a leggere la sfera di cristallo

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    hai ragione, in realtà speravo che ci fosse un modo per legare direttamente l'evento onsubmit ad un determinato tasto.

    Comunque una dritta interessante me l'hai data, perchè io utilizzavo come bottoni due type image.

    Nel frattempo posto le parti di codice:

    codice:
    <script language="JavaScript">  
    function formCheck(formobj){ 	
    var fieldRequired = Array("requiredCondizioniPagamento", "Data", "FineValid", "requiredModConsegna", "requirediva", "requiredModalitaImballo", "requiredContatto"); 
    
    var fieldDescription = Array("Condizioni di Pagamento", "Data", "Fine Validita'", "Modalita' di Consegna", "Iva", "Modalita' di Imballo/Spedizione", "Contatto"); 	
    
    var alertMsg = "Devi completare i seguenti campi per poter procedere:\n"; 
    var l_Msg = alertMsg.length; 	 	
    for (var i = 0; i < fieldRequired.length; i++){ 	
    	var obj = formobj.elements[fieldRequired[i]]; 		
    if (obj){ 			
    switch(obj.type){ 	
    case "select-one": 	
    if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){ 
    					alertMsg += " - " + fieldDescription[i] + "\n"; 		} 
    break; 	
    case "select-multiple": 			
    if (obj.selectedIndex == -1){ 		
    			alertMsg += " - " + fieldDescription[i] + "\n"; 				} 				
    break; 			
    case "text": 			
    case "textarea": 			
    if (obj.value == "" || obj.value == null){ 		
    	alertMsg += " - " + fieldDescription[i] + "\n"; 				} 				
    break; 			
    default: 			} 			
    if (obj.type == undefined){ 				
    var blnchecked = false; 			
    for (var j = 0; j < obj.length; j++){ 	
    	if (obj[j].checked){ 	blnchecked = true; 				} 				
    } 				
    if (!blnchecked){ 		
    alertMsg += " - " + fieldDescription[i] + "\n"; 				} 			} 		} 	}  	
    if (alertMsg.length == l_Msg){ 		return true; 	}else{ 		alert(alertMsg); 		return false; 	} } // --> </script>
    codice:
    <form id="approva" method="post" action="aggiorna.php" onSubmit="return formCheck(this);">
    .......
    <input type="image" src="submit.gif" <?php echo $disabled; ?> onClick="return checkrequired(this)" name="invia" value="Invia modifiche prefattura" alt="Invia modifiche prefattura">
      <input type="image" src="approved.jpg"  <?php echo $disabled; ?> name="approva" value="Approva prefattura" alt="Approva prefattura" style="margin-left:8px;">
    		</form>

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se gestisci l'evento onclick del pulsante submit (o image, che e' lo stesso come effetto) non puoi impedire che il form venga inviato qualunque sia l'esito dei controlli effettuati.
    codice:
    <form name="questo_viene_sempre_inviato">
    Accetti le condizioni? <input type="text" name="controllo">
    <input type="submit" onclick="return(this.form.controllo.value=='S');">
    </form>
    
    
    <form name="questo_viene_controllato" onsubmit="return(this.controllo.value=='S');">
    Accetti le condizioni? <input type="text" name="controllo">
    <input type="submit">
    </form>
    Puoi inserire quanti submit o image vuoi, verranno tutti trattati allo stesso modo qualunque onclick tu metta (che non sfoci in una redirezione della pagina) (semplicisticamente, ovvio)

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.