• Home
  • Forum
  • Fare Web
  • Javascript

Form - Tutti i campi obbligatori

  • Creatore Discussione Creatore Discussione luigi777
  • Data di inizio Data di inizio 18 Apr 2012
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 18 Apr 2012
  • #1
salve. ho questo script in javascript che mi controlla il campo se è stato inserito o no..

ma io vorrei fare un po prima invece di scrivere tutti gli if etc..

e alcune volte controllo anche se la data inserita deve essere 18-04-2012,
e alcune volte ho dei checkbox ..

invece cosi ... mettere un Repilogo di tutti campi obbligatori.?

ecco lo script.. lo script non è mio ma e di un esempio che ho trovato sulla rete.
PHP:
<script language="javascript">
	function CheckForm(form){
		//Avvio il controllo dei campi
		var booReturn = true;
		//strMessage
		var strMessage = "Attenzione, compilare i seguenti campi:\n"
		
		//Controllo
		if(form.strTitolo.value == ""){
			strMessage += "*Titolo\n";
			booReturn = false;
		}
	
	
		if(form.strStato.value == ""){
			strMessage += "*strStato\n";
			booReturn = false;
		}
		
		//Ritorno booReturn
		if(booReturn == false){
			alert (strMessage);
		}
		return booReturn;
	}
	</script>

grazie mille.
buona giornata.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 18 Apr 2012
  • #2
Scusa, non ho ben capito cosa vuoi fare; intendi un array contenente tutti i nomi dei campi obbligatori che poi saranno validati?
Perché non usi uno dei molti plugin di jQuery per la validazione? Es. http://docs.jquery.com/Plugins/Validation.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 18 Apr 2012
  • #3
Ciao
potresti aggiungere un ciclo su tutti gli elementi e verificarli

piu o meno cosi

Codice:
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // altrimenti avvisi ed esci
                alert("Tutti i campi sono obbligatori");
                return false;
            }
        }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 18 Apr 2012
  • #4
criric ha scritto:
Ciao
potresti aggiungere un ciclo su tutti gli elementi e verificarli

piu o meno cosi

Codice:
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // altrimenti avvisi ed esci
                alert("Tutti i campi sono obbligatori");
                return false;
            }
        }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
Clicca per allargare...

si cosi va bene.. solo che anche se ho inserito tutti mi dice sempre di inserire i dati come posso fare che quando è tutto pieno posso far inserire i dati.


PS: Non mi piace jquery..scusate molto..

Ma mi va bene questo script ..

Grazie mille..
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 18 Apr 2012
  • #5
Come mai non ti piace? I framework Javascript sono un ottimo metodo per scrivere applicazioni Web cross-browser e risparmiando righe di codice.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 18 Apr 2012
  • #6
luigi777 ha scritto:
si cosi va bene.. solo che anche se ho inserito tutti mi dice sempre di inserire i dati come posso fare che quando è tutto pieno posso far inserire i dati.


PS: Non mi piace jquery..scusate molto..

Ma mi va bene questo script ..

Grazie mille..
Clicca per allargare...

Ti ho sistemato lo script e fatto un esempio:

Codice:
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // setti error se manca un elemento del form
                var error = true;
            }
        }
     //controllo error e else per non ripetere gli alert
       if(!error){ form.submit(); }else{ alert("Tutti i campi sono obbligatori"); }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
<form action='lol.php' method='POST' id='test'>
<input type='text' id='asd'>
<input type='text' id='asd2'>
<input type='text' id='asd3'>
<input type='button' onclick="CheckForm(this.form)" value='cane'></form>
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 18 Apr 2012
  • #7
ok, quando ho tempo provo..

ora ho da fare altro..
buona serata e grazie mille per l'esempio che domani lo provo.
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 18 Apr 2012
  • #8
ok, ho provato mille modi ma no fa..

ansi ho dovuto fare i controlli lato server perché lo javascript .. controllava a meta .. forse per via del form che velo posto:
PHP:
//Form aggiunta news
if($action == "aggiungi"){
	$strStato  = (isset($_POST['strStato'])) ? trim ($_POST['strStato']): '';
	
	if(isset($_POST["submit"]))
	{
	
	//Recupero tutti dati
	
	$intNewsID = (isset($_POST['intNewsID'])) ? trim ($_POST['intNewsID']): '';
	$dtmPubblicazione = (isset($_POST['strData'])) ? trim ($_POST['strData']): ''; 
	$strStato  = (isset($_POST['strStato'])) ? trim ($_POST['strStato']): '';
	$strTitolo = (isset($_POST['strTitolo'])) ? trim ($_POST['strTitolo']): '';
	$strTesto = (isset($_POST['strTesto'])) ? trim ($_POST['strTesto']): '';
       $dtmPubblicazione = $_POST["strData"];
       $data_explode = explode('-', $dtmPubblicazione); 
       $dtmPubblicazione = "".$data_explode[2]."".$data_explode[1]."".$data_explode[0]."";



	
	if (!get_magic_quotes_gpc()) {
		
		$strTitolo = addslashes($strTitolo);
		$strTesto = addslashes($strTesto);
		$strStato  = addslashes($strStato);
		$dtmPubblicazione = addslashes($dtmPubblicazione);
	}
	
	if(empty($strTitolo))
	{
		$error = "Non hai inserito il titolo";
	}elseif(empty($strTesto))
	{
	$error = "Non hai inserito il testo";
	}
	elseif(empty($strStato))
	{
	$error = "Non hai inserito lo stato";
	}elseif(empty($dtmPubblicazione))
	{
	$error = "Non hai inserito la data";
	}else
	{
	
		$strSQL = mysql_query("INSERT INTO news ("
				. "strTitolo,"
				. "strTesto,"
				. "strStato,"
				. "dtmPubblicazione) VALUES("
				. "'$strTitolo',"
				. "'$strTesto',"
				. "'$strStato',"
				. "'$dtmPubblicazione')") or die(mysql_error());
		$msg = "fatto";
		$msg .= "<br><a href='index.php?m=news'>Torna indietro</a>";
				
	}
	}
	
	?>
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // setti error se manca un elemento del form
                var error = true;
            }
        }
     //controllo error e else per non ripetere gli alert
       if(!error){ form.submit(); }else{ alert("Tutti i campi sono obbligatori"); }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
	<h1>Aggiungi news</h1>
	<?php
	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	
	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {
	?>
    <form method="post" action="index.php?m=news&action=aggiungi" >
    <table width="100%" border="1">
  <tr>
    <td>
Titolo:&nbsp;</td>
    <td><input type="text" name="strTitolo" value="<?php if(isset($strTitolo)){echo $strTitolo;}else { echo isset($strTitolo); }?>" size="50" maxlength="100" /></td>
  </tr><tr>
    <td>
Testo:&nbsp;</td>
    <td><textarea name="strTesto" cols="70" rows="20"><?php if(isset($strTesto)){echo $strTesto;}else { echo isset($strTesto); }?></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      <input type="radio" name="strStato" value="1" <?php if($strStato=='1') echo 'checked="checked"'?> />
      Pubblica</label>
      <label>
        <input type="radio" name="strStato" value="2" <?php if($strStato=='2') echo 'checked="checked"'?>/>
    Nascondi</label></td>
  </tr>
  <tr>
    <td>Data:&nbsp;</td>
    <td><input type="text" name="strData" value="<?php echo date("d-m-Y");?>" size="50" maxlength="100" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="Inserisci" />
    </td>
  </tr>
</table>
</form>
	<?php
	}
}

come posso fare?

non posso usare type="button" mi serve per forsa submit e il nome del form.

idee?

grazie mille.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 18 Apr 2012
  • #9
Devi dare un id o un name al form (e agli elementi magari):
Codice:
<form method="post" action="index.php?m=news&action=aggiungi" id='mio_id'>

E usare un button non un submit richiamando la funzione sul click

Codice:
<input type='button' onclick="CheckForm(this.form)" value='invia'>

Infatti se copi e incolli il codice che ho messo sopra in una pagina funziona perfettamente


"per forza submit" Perchè scusa? Il submit avviene in automatico se tutti i campi ci sono (vedi la funzione)
 
Ultima modifica: 18 Apr 2012

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 18 Apr 2012
  • #10
@Nefyt
l'input submit lo usa poi per fare i controlli lato server con php

@luigi777
puoi provare a richiamare la funzione nel tag form con onsubmit

HTML:
<form method="post" onsubmit="CheckForm(this)" action="index.php?m=news&action=aggiungi" >

e nel codice javascript dopo l'alert metti return false (dovrebbe bloccarti l'invio del form)

a questo punto dovrai però togliere il submit() dalla funzione
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 18 Apr 2012
  • #11
criric ha scritto:
@Nefyt
l'input submit lo usa poi per fare i controlli lato server con php

@luigi777
puoi provare a richiamare la funzione nel tag form con onsubmit

HTML:
<form method="post" onsubmit="CheckForm(this)" action="index.php?m=news&action=aggiungi" >

e nel codice javascript dopo l'alert metti return false (dovrebbe bloccarti l'invio del form)

a questo punto dovrai però togliere il submit() dalla funzione
Clicca per allargare...
Il submit si trova qui se tutti i campi sono compilati:
Codice:
if(!error){ form.submit(); }else{ alert("Tutti i campi sono obbligatori"); }
perciò non vedo qual'è il problema

Se ti riferisci a if(isset($_POST["submit"])), potrebbe semplicemente cambiare variabile post
oppure non utilizzare un operatore ternario su tutte le variabili
 
Ultima modifica: 18 Apr 2012
Devi accedere o registrarti per poter rispondere.

Discussioni simili

F
Salve a tutti, devo creare un sito web/gioco online dove cliccando il tasto 'Inizia' del form viene estratta una capitale casualmente dal
  • faccone
  • 8 Mag 2024
  • PHP
Risposte
1
Visite
1K
PHP 23 Apr 2025
webest
L
form controllo con il for "Tutti i dati sono richiesti".
  • luigi777
  • 24 Giu 2013
  • PHP
Risposte
2
Visite
1K
PHP 26 Giu 2013
borgo italia
D
Selezionare tutti i checkbox di un form con jQuery
  • DNAvirusG
  • 7 Giu 2011
  • jQuery
Risposte
1
Visite
3K
jQuery 23 Giu 2011
Giancarlo PSK
G
G
campo non presente nel form
  • Gae
  • 7 Mag 2024
  • Javascript
Risposte
2
Visite
3K
Javascript 8 Mag 2024
Gae
G
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
K
Form che manda dati doppi
  • kamibest
  • 5 Ott 2023
  • PHP
Risposte
1
Visite
1K
PHP 5 Ott 2023
mapa
M
K
Problema form update
  • Kiko74b
  • 22 Giu 2023
  • PHP
Risposte
2
Visite
1K
PHP 3 Ott 2023
WEBLEADERS
W
[Contact form 7] Inserire Numero auto incrementante
  • Elisacau
  • 6 Mar 2023
  • WordPress
Risposte
1
Visite
2K
WordPress 15 Mag 2023
mariathomas
M
K
form Inserimento record mysql
  • Kiko74b
  • 21 Gen 2023
  • PHP
Risposte
2
Visite
1K
PHP 25 Gen 2023
WmbertSea
I
Form con selettore
  • Ikon
  • 2 Dic 2022
  • HTML e CSS
Risposte
0
Visite
956
HTML e CSS 2 Dic 2022
Ikon
I
K
[php]form invio dati
  • Kiko74b
  • 7 Nov 2022
  • PHP
Risposte
0
Visite
1K
PHP 7 Nov 2022
Kiko74b
K
G
form invio multiplo con checkbox
  • giacomo9783
  • 29 Ott 2022
  • PHP
Risposte
12
Visite
3K
PHP 1 Nov 2022
marino51
Intercettare form solo dopo invio
  • nivaria.achinet
  • 29 Apr 2022
  • Javascript
Risposte
1
Visite
1K
Javascript 30 Apr 2022
otto9due
R
Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera
  • RAF66
  • 27 Mar 2022
  • MS Access
Risposte
10
Visite
4K
MS Access 3 Apr 2022
RAF66
R
D
Form contatti non funzionante
  • Di Napoli Andrea
  • 18 Gen 2022
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 18 Gen 2022
Di Napoli Andrea
D
A
Stampare dati da form
  • antoooo
  • 12 Gen 2022
  • PHP
Risposte
15
Visite
4K
PHP 10 Apr 2024
enzo71
E
M
Unire 2 funzioni per l'invio di un form e con l'apertura di un div
  • maxnegri2036
  • 11 Dic 2021
  • Javascript
Risposte
0
Visite
2K
Javascript 11 Dic 2021
maxnegri2036
M
I
  • Bloccata
Form
  • Ikon
  • 5 Dic 2021
  • HTML e CSS
Risposte
17
Visite
3K
HTML e CSS 12 Dic 2021
Max 1
$_FILE non passa i dati dal form
  • otto9due
  • 3 Nov 2021
  • PHP
Risposte
1
Visite
976
PHP 3 Nov 2021
otto9due
M
Form: come tornare ai campi già compilati dopo invio
  • Marcello_php
  • 16 Ago 2021
  • PHP
Risposte
1
Visite
1K
PHP 17 Ago 2021
zorro
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • Javascript
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?