Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Controlli su form dati

  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Controlli su form dati

    Ciao a tutti.

    Ho previsto questi controlli in un form dati composto dai campi AAA, BBB (che di default hanno valore - ) e da un checkbox chiamato "eseguita" ; se metto la spunta nel campo "eseguita" i campi AAA e BBB devono diventari obbligatori (quindi il segno - non deve essere accettato):

    codice:
    if(Qform.eseguita.checked)
    		if(Qform.AAA.value = '-'){
    			alert('KO');
    			Qform.AAA.focus();
    			return false;
    		} 
    		
    if(Qform.eseguita.checked)
    		if(Qform.BBB.value= '-'){
    			alert('KO');
    			Qform.BBB.focus();
    			return false;
    		}
    Non capisco perchè ma quando invio il form il dato inserito nel campo AAA ritorna a posizionarsi su - e quindi il form non parte...
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    potresti essere piu preciso perche non capisco...

    ottieni errori? se si postali

    altrimenti spiega bene quello che vuoi ottenere e consiglio mio...accedi agli elementi del DOM tramite id e non tramite name come fai te

    document.getElementById('id_element').value ecc ecc

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134

    Re: Controlli su form dati

    Originariamente inviato da [trodat]
    Ciao a tutti.

    Ho previsto questi controlli in un form dati composto dai campi AAA, BBB (che di default hanno valore - ) e da un checkbox chiamato "eseguita" ; se metto la spunta nel campo "eseguita" i campi AAA e BBB devono diventari obbligatori (quindi il segno - non deve essere accettato):

    codice:
    if(Qform.eseguita.checked)
    		if(Qform.AAA.value = '-'){
    			alert('KO');
    			Qform.AAA.focus();
    			return false;
    		} 
    		
    if(Qform.eseguita.checked)
    		if(Qform.BBB.value= '-'){
    			alert('KO');
    			Qform.BBB.focus();
    			return false;
    		}
    Non capisco perchè ma quando invio il form il dato inserito nel campo AAA ritorna a posizionarsi su - e quindi il form non parte...
    Cosi tu non fai uno pseudo controllo, nel senso che la funzione parte perche spunti eseguita ma poi imposti il campo AAA sul trattino [-] ,(un uguale [=] imposti valore, due uguali affiancati [==] verifichi valori) fai cosi:
    codice:
    if(Qform.eseguita.checked)
    		if(Qform.AAA.value.indexOf('-') || Qform.AAA.value==''){
    			alert('KO');
    			Qform.AAA.focus();
    			return false;
    		} 
    		
    if(Qform.eseguita.checked)
    		if(Qform.BBB.value.lastIndexOf('-') || Qform.BBB.value==''){
    			alert('KO');
    			Qform.BBB.focus();
    			return false;
    		}
    Cosi esegue i seguenti controlli verifica '-' e campo vuoto.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie Andrea ma non funziona nemmeno così, nel senso che non esegue nessun controllo sul form.

    Provo a spiegarmi meglio, se nel form:

    eseguita = false (no checked)
    AAA = -
    BBB = -
    tutto va bene.

    Invece se nel form:

    eseguita = true (checked)
    AAA = -
    BBB = -
    Non va bene perchè sia AAA che BBB devono diventare obbligatori alla compilazione e NON possono contenere il carattere - (meno).

    Mi spiego?

    Non ci sono errori di nessun tipo a video, semplicemente non esegue il controllo quando eseguita è in condizione TRUE.
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Prova a cambiare cosi:

    al posto delle || (doppie barre) metti && (doppie e commerciali)

    Se anche cosi non funziona posta tutta la pagina come la ricevere il browser, oppure un link alla stessa.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    No, nulla da fare.

    codice:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    
    function dataValida(txt){
    	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
    	if(re.test(txt)){
    		var adata = txt.split('/');
    		var gg = parseInt(adata[0],10);
    		var mm = parseInt(adata[1],10);
    		var aaaa = parseInt(adata[2],10);
    		var xdata = new Date(aaaa,mm-1,gg)
    		if((xdata.getFullYear()==aaaa) && (xdata.getMonth()==mm-1) && (xdata.getDate()==gg))
    			return xdata
    		else return false
    	}else return false
    }
    
    function convalidaForm(Qform) 
    {
    
    if(Qform.eseguita.checked)
    		if(!dataValida(Qform.data_intervento.value)){
    			alert('Attività eseguita!\nInserire la data di intervento');
    			Qform.data_intervento.focus();
    			return false;
    }
    
    if(Qform.eseguita.checked)
    		if(Qform.AAA.value.indexOf('-') && Qform.AAA.value==''){
    			alert('KO');
    			Qform.AAA.focus();
    			return false;
    		} 
    		
    if(Qform.eseguita.checked)
    		if(Qform.BBB.value.lastIndexOf('-') && Qform.BBB.value==''){
    			alert('KO');
    			Qform.BBB.focus();
    			return false;
    		} 
    
      for (var a = 0; a < Qform.elements.length; a++) 
    	{
    	var campo = Qform.elements[a];
    
    if (campo.value.length <= 0)
    
    		{
            	window.alert('Il campo "'+ campo.name +'"\nè un campo obbligatorio in questo form.');
            	campo.focus();
            	return false;
            }
          }
    
          
      // Abilita l'invio del FORM
      return(true);
    }
     
    //-->
    </script>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Scusa ma ti ho chiesto di postare tutta la pagina, non solo lo script, che tralatro pensavo che come da richiesta originale fosse limitata a quella funzione.
    Per essere sicuro che il problema sia nelle righe da me postate (visto che non da nessun errore) le hai provate separatamente?

    P.S. Scusa ho aggiornato il browser, ho modificato la messaggio.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da cavicchiandrea
    Prova a cambiare cosi:

    al posto delle || (doppie barre) metti && (doppie e commerciali)

    Se anche cosi non funziona posta tutta la pagina come la ricevere il browser, oppure un link alla stessa.
    L'ho già fatto.
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  9. #9
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    La pagina è questa, ma continua a non controllare i campi AAA e BBB:

    codice:
    <html>
    
    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nuova pagina 1</title>
    
    <script language="JavaScript" type="text/JavaScript">
    <!--
    
    function dataValida(txt){
    	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
    	if(re.test(txt)){
    		var adata = txt.split('/');
    		var gg = parseInt(adata[0],10);
    		var mm = parseInt(adata[1],10);
    		var aaaa = parseInt(adata[2],10);
    		var xdata = new Date(aaaa,mm-1,gg)
    		if((xdata.getFullYear()==aaaa) && (xdata.getMonth()==mm-1) && (xdata.getDate()==gg))
    			return xdata
    		else return false
    	}else return false
    }
    
    function convalidaForm(Qform) 
    {
    
    if(Qform.eseguita.checked)
    		if(!dataValida(Qform.data_intervento.value)){
    			alert('Attività eseguita!\nInserire la data di intervento');
    			Qform.data_intervento.focus();
    			return false;
    }
    
    if(Qform.eseguita.checked)
    		if(Qform.AAA.value.indexOf('-') && Qform.AAA.value==''){
    			alert('KO');
    			Qform.AAA.focus();
    			return false;
    		} 
    		
    if(Qform.eseguita.checked)
    		if(Qform.BBB.value.lastIndexOf('-') && Qform.BBB.value==''){
    			alert('KO');
    			Qform.BBB.focus();
    			return false;
    		} 
    
      for (var a = 0; a < Qform.elements.length; a++) 
    	{
    	var campo = Qform.elements[a];
    
    if (campo.value.length <= 0)
    
    		{
            	window.alert('Il campo "'+ campo.name +'"\nè un campo obbligatorio in questo form.');
            	campo.focus();
            	return false;
            }
          }
    
          
      // Abilita l'invio del FORM
      return(true);
    }
     
    //-->
    </script>
    </head>
    
    <body>
          <form name="Qform" method="POST" ACTION="pag.asp" onsubmit="return(convalidaForm(this));">
            <input type="text" name="data_intervento" size="20"></p>
            
    
    
            <input type="text" name="AAA" size="20" value="-"></p>
            
    
    </p>
            
    
    
            <input type="text" name="BBB" size="20" value="-"></p>
            
    
    <input type="checkbox" name="eseguita" value="ON"></p>
            
    
    </p>
            
      <input type="submit" value="Invia" name="B1">
          </form>
    
    </body>
    
    </html>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Originariamente inviato da cavicchiandrea
    .....Per essere sicuro che il problema sia nelle righe da me postate (visto che non da nessun errore) le hai provate separatamente?
    Di questa domanda cosa non hai capito!!!, comunque chiuadimo qui. Spero tu possa risolvere con un'altro utente del forum che abbia più tempo di me.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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