Mettere ciclo for

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Devo mettere un ciclo for altrimenti il codice non funziona, qualcuno sa come fare?

HTML:
function caratteriNonAmmessi() {
var fx = document.forms.mioform1;
var nomeCampi = ["nome","citta","suoemail","messaggio","validator"]; 
if((fx.nomeCampi.value.indexOf("<") != -1) || (fx.nomeCampi.value.indexOf(">") != -1) || (fx.nomeCampi.value.indexOf("\\") != -1)) {
fx.nomeCampi.style.backgroundColor='red'
alert("I caratteri  <  > \\  non sono ammessi");
fx.nomeCampi.focus();
return false;
}
return true
}
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Così dovrebbe andare:
Codice:
function caratteriNonAmmessi()
{
    var fx = document.forms.mioform1;
    var nomeCampi = ["nome", "citta", "suoemail", "messaggio", "validator"];

    for (var i in nomeCampi) {
        var error = false;
        
        if (fx.nomeCampi[i].value.indexOf("<") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf(">") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf("\\") != -1) {
            error = true;
        }

        if (error) {
            fx.nomeCampi.style.backgroundColor = 'red'
            alert("I caratteri  <,  >, e \\ non sono ammessi");
            fx.nomeCampi.focus();
            
            return false;
        }
    }
    
    return true;
}
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Così dovrebbe andare:
Codice:
function caratteriNonAmmessi()
{
    var fx = document.forms.mioform1;
    var nomeCampi = ["nome", "citta", "suoemail", "messaggio", "validator"];

    for (var i in nomeCampi) {
        var error = false;
        
        if (fx.nomeCampi[i].value.indexOf("<") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf(">") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf("\\") != -1) {
            error = true;
        }

        if (error) {
            fx.nomeCampi.style.backgroundColor = 'red'
            alert("I caratteri  <,  >, e \\ non sono ammessi");
            fx.nomeCampi.focus();
            
            return false;
        }
    }
    
    return true;
}
Non esce l'alert
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Posta anche il codice HTML del form.


HTML:
<!-- Inizio codice POPUP-Scrivimi1 -->
                                                                                          
<div id="popup-Scrivimi1"> 

<div id="chiudi-Scrivimi1">
<a href="#" onclick="body.style.overflow='auto';document.getElementById('shade').style.display='none';document.getElementById('chiudi-Scrivimi1').style.display='none';document.getElementById('popup-Scrivimi1').style.display='none'">Close</a>  
</div>  <!-- chiudi-Scrivimi1 -->

<div id="headerFormScrivimi1">Scrivimi</div>

<form method="post" action="scrivimi2.php" id="mioform1" onkeyup="highlight(event)" onsubmit="return (xxx1()&amp;&amp;controlla1()&amp;&amp;caratteriNonAmmessi())">

<!-- Prende la data-ora browser del visitatore da script.js WebDate_Scrivimi() -->
 <input type="hidden" id="hdn_data_locale" name="WebDate_Scrivimi" />
 <script type="text/javascript">WebDate_Scrivimi();</script>   
	
<fieldset id="contenuto1"> 
<div class="linea1">
<label class="nomi1Scriv">Tuo NOME<span class="asterisco1">&nbsp;*</span></label>
<input type="text" name="nome" class="campi1" value="<?php echo($_SESSION['nome'])?>" onkeyup="contaNomeScrivimi1(this.form);" onblur="this.value=this.value.replace(/[\s]*/,'')" /> 
&nbsp;&nbsp;&nbsp;&nbsp;<img src="faccine/cxonfuso.gif" alt="Confuso" title="Confuso" onclick="document.forms.mioform1.messaggio.value+='CONFUSO';focus()" style="cursor:pointer" />
&nbsp;&nbsp;<img src="faccine/ixmpossibile.gif" alt="Impossibile" title="Impossibile" onclick="document.forms.mioform1.messaggio.value+='IMPOSSIBILE';focus()" style="cursor:pointer" />
&nbsp;<img src="faccine/txestardo.gif" alt="Testardo" title="Testardo" onclick="document.forms.mioform1.messaggio.value+='TESTARDO';focus()" style="cursor:pointer" />
</div>
				   <div class="linea1">
           <label class="nomi1">Tua CITT&Agrave;</label>
       <input type="text" name="citta" class="campi1" value="<?php echo($_SESSION['citta'])?>" onkeyup="contaCittaScrivimi1(this.form);" onblur="this.value=this.value.replace(/[\s]*/,'')" />
					&nbsp;&nbsp;&nbsp;&nbsp;<img src="faccine/pxiange.gif" alt="Piange" title="Piange" onclick="document.forms.mioform1.messaggio.value+='PIANGE';focus()" style="cursor:pointer" />
					&nbsp;&nbsp;<img src="faccine/bxacio.gif" alt="Bacio" title="Bacio" onclick="document.forms.mioform1.messaggio.value+='BACIO';focus()" style="cursor:pointer" />
          &nbsp;&nbsp;<img src="faccine/fxelice.gif" alt="Felice" title="Felice" onclick="document.forms.mioform1.messaggio.value+='FELICE';focus()" style="cursor:pointer" />
         </div>
				  <div class="linea1">
				 <label class="nomi1">Tua EMAIL<span class="asterisco1">&nbsp;*</span></label>
           <input type="text" name="suoemail" class="campi1" value="<?php echo($_SESSION['suoemail'])?>" onkeyup="contaEmailScrivimi1(this.form);" onblur="this.value=ignoreSpaces(this.value)" />   <!-- Rimuove tutti gli spazi (attacca le parole) -->
				&nbsp;&nbsp;&nbsp;&nbsp;<img src="faccine/rxide.gif" alt="Ride" title="Ride" onclick="document.forms.mioform1.messaggio.value+='RIDE';focus()" style="cursor:pointer" />
           &nbsp;&nbsp;<img src="faccine/oxcchiolino.gif" alt="Occhiolino" title="Occhiolino" onclick="document.forms.mioform1.messaggio.value+='OCCHIOLINO';focus()" style="cursor:pointer" />
					&nbsp;&nbsp;<img src="faccine/cxiao.gif" alt="Ciao" title="Ciao" onclick="document.forms.mioform1.messaggio.value+='CIAO';focus()" style="cursor:pointer" />
                 </div>
				 
		<div class="linea1">
			<div class="formattazione1">
			
      <div id="bottoneG"> 		
      <a href="javascript:insert_tag('G');">G</a>
      </div>
      <div id="bottoneC"> 
      <a href="javascript:insert_tag('C');">C</a>	
      </div>
      <div id="bottoneS"> 
      <a href="javascript:insert_tag('S');">S</a>
      </div> 
<select class="campoColori1" onchange="insert_tag('COLOR',this.options[this.selectedIndex].value);this.selectedIndex=0;">
<option>Color</option> 
<option class="cayenne-bg" value="cayenne">Cayenne</option>
<option class="rosso-bg" value="rosso">Rosso</option>
<option class="verde-bg" value="verde">Verde</option>
<option class="grigio-bg" value="grigio">Grigio</option>
 </select>
      </div> <!-- formattazione1 -->
			</div>  <!-- linea1 -->
   </fieldset> <!-- contenuto1 -->
	
	 <div id="contSX">
		<span class="testoMess">Testo</span><span class="asterisco1">&nbsp;*</span>
		<br />
		 <br />
  <span id="charCount">Rimanenti&nbsp;<span class="formattaNumero"><span id="Contatore">1000</span></span>
   <br />
  caratteri</span>
    </div>

<textarea name="messaggio" id="txtScrivimi1" cols="0" rows="0" onkeyup="conta(this)" onblur="this.value=this.value.replace(/[\s]*/,'')"><?php echo($_SESSION['messaggio'])?></textarea>

<div id="contDXScrivimi1">	 
   <img src="faccine/pxaura.gif" alt="Paura" title="Paura" onclick="document.forms.mioform1.messaggio.value+='PAURA';focus()" style="cursor:pointer" />
   </div>
	
	 <div id="footer-sxScrivimi1">
    <span class="campiObb">Campi obbligatori</span><span class="asterisco1">&nbsp;*</span>
					</div>
					<div id="footer-ctScrivimi1">
           	<input type="submit" value="Invia" class="manina-guest" />
						</div>
						
						<div id="footer-dxScrivimi1">
           <span class="red">Scrivi questo codice</span>
					 <br />
        	<input type="text" name="validator" id="validator" onkeyup="contaValid(this.form);" onblur="this.value=ignoreSpaces(this.value)" />
			      <script type="text/javascript">Captcha();</script>
				    </div>
      </form>

       </div> <!-- popup-Scrivimi1 -->  
		
    <!-- Fine codice POPUP-Scrivimi1 -->
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
mioform1 dev'essere il nome del form, non l'ID:
HTML:
<form method="post" action="scrivimi2.php" name="mioform1" onkeyup="highlight(event)" onsubmit="return (xxx1() && controlla1() && caratteriNonAmmessi());">
Inoltre scrivevi &amp; invece di &.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
mioform1 dev'essere il nome del form, non l'ID:
HTML:
<form method="post" action="scrivimi2.php" name="mioform1" onkeyup="highlight(event)" onsubmit="return (xxx1() && controlla1() && caratteriNonAmmessi());">
Inoltre scrivevi &amp; invece di &.

Se metto name al posto di id, mi sballa tutto il form, ho messo &amp così viene valicato da W3c
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho modificato questo, ma per il codice che si fa?

HTML:
<form method="post" name="mioform1" id="mioF" action="scrivimi2.php" onkeyup="highlight(event)" onsubmit="return (xxx1()&amp;&amp;controlla1()&amp;&amp;caratteriNonAmmessi());">
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Guarda che dovrebbe essere validato anche senza &amp;. Comunque, al limite puoi creare una nuova funzione:
Codice:
function controllaForm()
{
    return (xxx1() && controlla1() && caratteriNonAmmessi());
}
E cambi il form così:
HTML:
<form method="post" name="mioform1" id="mioF" action="scrivimi2.php" onkeyup="highlight(event)" onsubmit="return controllaForm();">
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Guarda che dovrebbe essere validato anche senza &amp;. Comunque, al limite puoi creare una nuova funzione:
Codice:
function controllaForm()
{
    return (xxx1() && controlla1() && caratteriNonAmmessi());
}
E cambi il form così:
HTML:
<form method="post" name="mioform1" id="mioF" action="scrivimi2.php" onkeyup="highlight(event)" onsubmit="return controllaForm();">

Ho modificato, il problema è che il codice non fa uscire l'alert, non intercetta i caratteri proibiti
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho notato una cosa, che onsubmit="return (parolaNo() && controlla1() && caratteriNonAmmessi());">
non intercetta caratteriNonAmmessi()

Forse è per questo che non esce l'alert, ma non mi quadra visto che trova le altre 2 funzioni
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Vedi se così cambia qualcosa:
Codice:
function caratteriNonAmmessi()
{
    var fx = document.forms.mioform1;
    var nomeCampi = ["nome", "citta", "suoemail", "messaggio", "validator"];
    var error;
    
    for (var i in nomeCampi) {
        error = false;
        
        if (fx.nomeCampi[i].value.indexOf("<") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf(">") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf("\\") != -1) {
            error = true;
        }

        if (error) {
            fx.nomeCampi.style.backgroundColor = 'red';
            alert("I caratteri  <,  >, e \\ non sono ammessi");
            fx.nomeCampi.focus();
            
            return false;
        }
    }
    
    return true;
}
Inoltre prova a spostare la funzione al primo posto in controllaForm.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Vedi se così cambia qualcosa:
Codice:
function caratteriNonAmmessi()
{
    var fx = document.forms.mioform1;
    var nomeCampi = ["nome", "citta", "suoemail", "messaggio", "validator"];
    var error;
    
    for (var i in nomeCampi) {
        error = false;
        
        if (fx.nomeCampi[i].value.indexOf("<") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf(">") != -1) {
            error = true;
        }

        if (fx.nomeCampi[i].value.indexOf("\\") != -1) {
            error = true;
        }

        if (error) {
            fx.nomeCampi.style.backgroundColor = 'red';
            alert("I caratteri  <,  >, e \\ non sono ammessi");
            fx.nomeCampi.focus();
            
            return false;
        }
    }
    
    return true;
}
Inoltre prova a spostare la funzione al primo posto in controllaForm.

Non va nemmeno così.

Se metto il controllo all'inizio non trova nemmeno gli altri 2

...onsubmit="return (caratteriNonAmmessi() && parolaNo() && controlla1());">
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho fatto un ulteriore modifica ma nemmeno così l'onsubmit lo trova

PHP:
// Caratteri non ammessi
function caratteriNo() {
var fx = document.forms.mioform1;
var nomeCampi = ["nome","citta","suoemail","messaggio","validator"];
for (var i in nomeCampi) {
var error = false;
if (fx[i].value.indexOf("<")  != -1) {
error = true;
}
if (fx[i].value.indexOf(">")  != -1) { 
error = true;
}
if (fx[i].value.indexOf("\\")  != -1) {
error = true;
}
if (error) {
fx[i].style.backgroundColor = 'red'
alert("I caratteri  <  > \\ non sono ammessi");
fx[i].focus();
return false;
}
 }
return true;
}


<form method="post" name="mioform1" id="mioF" action="scrivimi2.php" onkeyup="highlight(event)" onsubmit="return (parolaNo() && controlla1() && caratteriNo());">
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho risolto

PHP:
// Caratteri non ammessi
function caratteriNo() {
var fx = document.forms.mioform1;
var nomeCampi = ["nome","citta","suoemail","messaggio","validator"];
for (j=0;j<nomeCampi.length;j++) { 
i=nomeCampi[j];
var error = false;
if (fx[i].value.indexOf("<")  != -1) {
error = true;
}
if (fx[i].value.indexOf(">")  != -1) {
error = true;
}
if (fx[i].value.indexOf("\\\\")  != -1) {
error = true;
}
if (error) {
fx[i].style.backgroundColor = 'red'
alert("I caratteri  <  > \\\\  non sono ammessi");
fx[i].focus();
return false;
}
 }
return true;
}


<form method="post" name="mioform1" id="mioF" action="../scrivimi2.php" onkeyup="highlight(event)" onsubmit="return (controlla1() && parolaNo() && caratteriNo());">
 
Discussioni simili
Autore Titolo Forum Risposte Data
K Mettere insieme due funzioni Javascript 2
Shyson Mettere categorie nelle anteprime degli articoli PHP 1
R Mettere in sicurezza una comunicazione .NET Framework 0
G Mettere il footer in basso HTML e CSS 0
G mettere account posta in Microsoft outlook 2016 di gmail Posta Elettronica 0
B Mettere sito offline senza troppe penalizzazioni SEO e Posizionamento 0
G [HTML] mettere link in facebook link invece che su sito web Social Media Marketing 1
G [Guida MyBB 1.8] Mettere in colonna SubForum CMS (Content Management System) 0
G [Photoshop] Mettere una scritta in prospettiva. Photoshop 7
Shyson [PHP] Mettere parentesi graffe o no? PHP 2
Shyson [PHP] Mettere placeholder PHP 2
Shyson [HTML] Mettere select responsive HTML e CSS 3
giannit [HTML] Mettere div al posto di iframe e possibile? HTML e CSS 9
D cambio il dominio per mettere keyword dentro? SEO e Posizionamento 8
G [HTML] mettere menu style smartphone anche sui tablet HTML e CSS 0
Shyson [PHP] Mettere il link "Leggi tutto" PHP 0
L mettere un simbolo per capire se è un sottomenu jQuery 2
Shyson [WordPress] Mettere un limite a lunghezza caratteri WordPress 11
Shyson [WordPress] Mettere classe css WordPress 0
Shyson Mettere span davanti a php PHP 9
F [VENDO] Inviti a mettere mi piace alla vostra pagina facebook! Annunci servizi di Social Media Marketing 10
Shyson Mettere contaviste ai miei articoli PHP 1
A Come mettere il target _blank in un parser xml in php? PHP 1
A Come mettere al sicuro un Cloud Server? Cloud Computing e Cloud Server 1
Shyson Mettere spazio a codice PHP 3
A Miglior hosting per mettere su internet un sito HTML? Hosting 3
A posso mettere i miei contenuti di un sito usa in un sito in australia SEO e Posizionamento 2
P mettere al centro i bottoni HTML e CSS 10
V Quando mettere il JOIN e quando no? MySQL 1
I Vendo 32.000 Inviti a mettere mi piace alle pagine/Invito Eventi Annunci servizi di Social Media Marketing 0
R Mettere la possibilità di Salvare in un gioco =) Come si fa? Java 2
C è illegale mettere sul proprio portfolio online i siti fatti sotto contratto? Discussioni Varie 5
max_400 Hosting gratuito dove mettere giochi in flash Hosting 2
M Mettere un'immagine come header HTML e CSS 1
Shyson Mettere più valori in una variabile PHP 1
Shyson Mettere css jQuery 1
E Mettere come Selected l'opzione di un select option, tramite il dato di una query. Javascript 2
A consiglio su come mettere in evidenza un contenuto Webdesign e Grafica 0
Shyson Mettere target="_top" PHP 0
Mauro Guardiani chi sa dove mettere questo codice Tubular jQuery plugin Javascript 1
Shyson Mettere "I più visti" nel sito Snippet PHP 0
Shyson Mettere script nel Database PHP 0
Shyson Mettere nel sito "I più visti" PHP 9
S Come mettere Menu a tendina in un modello CSS? HTML e CSS 0
F mettere online foto di persone, si può? Leggi, Normative e Fisco 2
Shyson Mettere alt e title in immagine nel css HTML e CSS 2
Shyson Mettere hover a css in linea HTML e CSS 1
Shyson Mettere immagine per chiudere popup HTML e CSS 1
P Mettere in una riga i record di una colonna MySQL 0
Shyson Mettere url collegato al radio HTML e CSS 20

Discussioni simili