Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    95

    Ad Explorer non piace i miei controlli sul form

    Ciao a tutti, ho un piccolo problema. Come esercizio ho da fare dei controlli dei campi di un form e di seguito ho messo i codici inerenti.
    Se visualizzo la pagina con Mozilla non c'è problema e tutti i controlli funzionano.
    Se invece la apro con Explorer subito all'inizio mi dice "E' stato impedito alla pagina Web di eseguire script o controlli ActiveX. Consenti contenuto bloccato?".
    Se dico di no non funziona niente, neanchè il menù dinamico fatto sempre con js.
    Se invece acconsento, il tempo di cliccare su first e last name, escono i messaggi di errore che dicono che il campo è obbligatorio e si impalla il browser.

    Come posso raggirare questo problema? Grazie a tutti!

    Newsletter.html
    codice:
    <form id="frm" name="myForm" action="http://secnet.di.unito.it/cgi-bin/parrot.cgi" method="post">
    	 <fieldset>
    		<legend>User Details</legend>
    		<table border="0">
    			<tr>
    				<td>First name: *</td>
    				<td><input name="first_name" type="text" onblur="chkName()"></td>
    			</tr>
    			<tr>
    				<td>Last name: *</td>
    				<td><input name="last_name" type="text" onblur="chkSurname()"></td>
    			</tr>
    			<tr>
    				<td>E-mail: *</td>
    				<td><input name="e_mail" type="text" onblur="chkMail()"></td>
    			</tr>
    		</table>
    	</fieldset>
    	<fieldset>
    		<legend>Options</legend>
    		
    
    		Frequency:
    			<select multiple size="1" name="frequency">
    				<option selected value="Componente_1">Daily</option>
    				<option selected value="Componente_2">Weekly</option>
    				<option selected value="Componente_3">Monthly</option>
    			</select>
    		
    
    
    		Format:
    			<input type="radio" name="format" value="html"> html
    			<input type="radio" name="format" value="text"> text
    		
    
    
    		Write a comment
    		
    
    
    			<textarea name="comment" rows="5" cols="40" onblur="chkComment()"></textarea>
    		
    
    
    			<button name="invia" value="Invia" type="submit">
    				Invia
    				[img]Gallery/Immagini/ok.gif[/img]
    			</button>
    			<button name="cancella" onclick="return bye()"> 
    				Cancella[img]Gallery/Immagini/cancel.gif[/img]
    			</button>
    		
    
    
    	</fieldset>
    </form>
    Control.js
    codice:
    function chkName() {
    	var utente = document.myForm.first_name.value;
    	if (utente == '') {
    		document.getElementById('msg1').style.display = 'block';
    		document.getElementById('msg1').style.color = 'red';
    		document.getElementById('msg1').innerHTML = 'Campo First name: questo campo &egrave obbligatorio, inserisci un valore!';
    		document.myForm.first_name.focus();
    	}
    	else {
    		var pattern =/[0-9,|, +, --, =, <, >, !=, (, ), %, @, #, *]/ ;
    		var ctrl=utente.search(pattern);
    		if (ctrl >= 0 || utente.length<2) {
    			document.getElementById('msg1').style.display = 'block';
    			document.getElementById('msg1').style.color = 'red';
    			document.getElementById('msg1').innerHTML = 'Campo First name: il nome non &egrave scritto correttamente!';
    			document.myForm.first_name.focus();
    			}
    		else
    			document.getElementById('msg1').style.display = 'none';
    	}
    	return false;
    }
    
    function chkSurname() {
    	var utente = document.myForm.last_name.value;
    	if (utente == '') {
    		document.getElementById('msg2').style.display = 'block';
    		document.getElementById('msg2').style.color = 'red';
    		document.getElementById('msg2').innerHTML = 'Campo Last name: questo campo &egrave obbligatorio, inserisci un valore!';
    		document.myForm.last_name.focus();
    	}
    	else {
    		var pattern =/[0-9,|, +, --, =, <, >, !=, (, ), %, @, #, *]/ ;
    		var ctrl=utente.search(pattern);
    		if (ctrl >= 0 || utente.length<2) {
    			document.getElementById('msg2').style.display = 'block';
    			document.getElementById('msg2').style.color = 'red';
    			document.getElementById('msg2').innerHTML = 'Campo Last name: il nome non &egrave scritto correttamente!';
    			document.myForm.last_name.focus();
    			}
    		else
    			document.getElementById('msg2').style.display = 'none';
    	}
    	return false;
    }
    
    function chkMail() {
    	var utente = document.myForm.e_mail.value;
    	if (utente == '') {
    		document.getElementById('msg3').style.display = 'block';
    		document.getElementById('msg3').style.color = 'red';
    		document.getElementById('msg3').innerHTML = 'Campo E-mail: questo campo &egrave obbligatorio, inserisci un valore!';
    		document.myForm.e_mail.focus();
    	}
    	else {
    		var pattern_mail = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    		var ctrl=utente.search(pattern_mail);
    		if (ctrl == -1) {
    			document.getElementById('msg3').style.display = 'block';
    			document.getElementById('msg3').style.color = 'red';
    			document.getElementById('msg3').innerHTML = 'Campo E-mail: la mail non &egrave scritta correttamente!';
    			document.myForm.e_mail.focus();
    			}
    		else
    			document.getElementById('msg3').style.display = 'none';
    	}
    	return false;
    }
    
    function chkComment() {
    	var utente = document.myForm.comment.value;
    	var pattern =/[|, +, --, =, <, >, !=, (, ), %, @, #, *]/ ;
    	var ctrl=utente.search(pattern);
    	if (ctrl >= 0) {
    		document.getElementById('msg4').style.display = 'block';
    		document.getElementById('msg4').style.color = 'red';
    		document.getElementById('msg4').innerHTML = 'Campo Comment: non sono accettati i caratteri |, +, --, =, <, >, !=, (, ), %, @, #, *';
    		document.myForm.comment.focus();
    		}
    	else
    		document.getElementById('msg4').style.display = 'none';
    	
    	return false;
    }
    
    function bye() {
    	if(confirm('Sicuro?')) {
    		document.myForm.style.display = 'block';
    		return true;
    		}
    	else  
    		return false;
    }

  2. #2
    A parte il tuo problema, ma qui anche le esprssioni regolari non vanno:

    var pattern =/[0-9,|, +, --, =, <, >, !=, (, ), %, @, #, *]/ ;

    perchè le virgole e gli spazi?
    Nelle espressioni regolari gli spazi non sono opzionali, ma significano esattamente: qui uno spazio.

    Se la metti dentro parentesi quadre, non è come per le funzioni che devi separare gli "argomenti" con una virgola. Devi mettere (fra parentesi QUADRE) i caratteri in sequenza senza virgole o spazi, il trattino segnala invece un range di caratteri o alfabetici o numerici 0-9a-zA-Z o anche, semmai, a-d 3-6. In tal caso per segnalare invece il trattino come tale e non come indicante un range, gli premetti il carattere di escape: \-

    perchè le parentesi attorno ad una virgola?

    Cioè guarda quando metti i caratteri in una espressione regolare fra parentesi quadre, significa che cerchi un qualsiasi carattere che sia fra quelli messi.

    Inoltre, non ti permette di trovare combinazioni di simboli come != ma solo simboli isolati
    Se tu hai messo !=
    con la idea di trovare: !=
    no, ti ritornerà true per qualsiasi istanza ISOLATA di ! o di =

    per cui, semmai

    var pattern =/[0-9|+\-,<>!=%@#*]/ ;

    Inoltre i campi msg1 ecc:
    document.getElementById('msg1')

    io nell' html non li vedo.

    Poi:
    <button

    no non esiste button nell' html del w3 esiste <input type="button"
    un browser non è tenuto a interpretare correttamente il tag <button> perchè NON è nelle specifiche del w3

    men che meno esiste un <button type="submit"
    ma un
    <input type="submit" value="cliccami" onclick="" />

    Non è che non funziona su explorer, non dovrebbe funzionare da nessuna parte.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    95
    A parte il tuo problema, ma qui anche le esprssioni regolari non vanno:

    var pattern =/[0-9,|, +, --, =, <, >, !=, (, ), %, @, #, *]/ ;

    perchè le virgole e gli spazi?
    Nelle espressioni regolari gli spazi non sono opzionali, ma significano esattamente: qui uno spazio.

    Se la metti dentro parentesi quadre, non è come per le funzioni che devi separare gli "argomenti" con una virgola. Devi mettere (fra parentesi QUADRE) i caratteri in sequenza senza virgole o spazi, il trattino segnala invece un range di caratteri o alfabetici o numerici 0-9a-zA-Z o anche, semmai, a-d 3-6. In tal caso per segnalare invece il trattino come tale e non come indicante un range, gli premetti il carattere di escape: \-

    perchè le parentesi attorno ad una virgola?

    Cioè guarda quando metti i caratteri in una espressione regolare fra parentesi quadre, significa che cerchi un qualsiasi carattere che sia fra quelli messi.

    Inoltre, non ti permette di trovare combinazioni di simboli come != ma solo simboli isolati
    Se tu hai messo !=
    con la idea di trovare: !=
    no, ti ritornerà true per qualsiasi istanza ISOLATA di ! o di =

    per cui, semmai

    var pattern =/[0-9|+\-,<>!=%@#*]/ ;
    Allora, l'istruzione utente.search(pattern) mi indica in quale posizione del testo mi trova uno dei caratteri presenti nel pattern oppure ritorna -1 se tutto va bene.
    L'ho testato il codice giorni fa e, se mi ricordo bene, funziona benissimo.

    Inoltre i campi msg1 ecc:
    document.getElementById('msg1')

    io nell' html non li vedo.
    Ops, questo mi sono dimenticato di copiarlo...

    Questo è nel file html appena sopra il form
    codice:
    <p id="msg1"></p>
    <p id="msg2"></p>
    <p id="msg3"></p>
    <p id="msg4"></p>
    e questo nel file css
    codice:
    p#msg1, p#msg2, p#msg3, p#msg4 {
    	display:none;
    	text-align: left;
    }
    Poi:
    <button

    no non esiste button nell' html del w3 esiste <input type="button"
    un browser non è tenuto a interpretare correttamente il tag <button> perchè NON è nelle specifiche del w3

    men che meno esiste un <button type="submit"
    ma un
    <input type="submit" value="cliccami" onclick="" />

    Non è che non funziona su explorer, non dovrebbe funzionare da nessuna parte.
    Come non esiste il tag button, e questo cos'è?

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.