mistero di wysiwyg

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
un, per me, mistero di wysiwyg.
ho impostato wysiwyg in una pagina di prova per il campo messaggi di un form invio email, e, come usualmete,
ho inserito la verifica che il campo venga compilato.
dopo varie prove mi sono accorto che il campo vuoto non trasmette un vuoto o null ma una stringa,
utilizzando vari sistemi risulta che la stringa è <br>, mentre se si scrive qualcosa tale stringa sparisce
e rimane solo quello che si è scritto
sempre dalle prove ho "scoperto" che la stringa trasmessa con campo vuoto è lunga 4.
per cui ho messo la verifica non su stringa vuota, ma su lunghezza stinga < 5.
e qui comincia il mistero.
chiamo il form
nel campo scrivo abracadabra (lunghezza > 5)
dò invio
appare, erroneamente, l'alert "il campo deve essere compilato"
clicco ok sull'alert
dò di nuovo invio
il testo viene accettato, però con un altro mistero
se prima del secondo invio cancello il testo scritto nel campo avviene lo stesso l'invio anche se in questo caso
sarebbe giusto che apparisse l'alert

questo è il form+script


PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
<style type="text/css">
<!--
body {
	background-color: #CCCCCC;
}
-->
</style>
<script type="text/javascript" src="scripts/wysiwyg.js"></script>
<script type="text/javascript" src="scripts/wysiwyg-settings.js"></script>
<script type="text/javascript">
<!--
WYSIWYG.attach('textarea2', small); // full featured setup
//in wysiwng-setting var small modificato
// small.Width small.Height e
// in small.Toolbar[0] aggiunto  "unorderedlist","orderedlist"
//-->
</script>
<script type="text/javascript">
<!--
function ControllaForm()
{//su altri campi di input normali funzia bene!!!
var controllo=false;
var testo=this.document.form.test2.value;//senza this funzia peggio ????
if (testo.length < 5 )
{
	controllo=true;
	alert("Attenzione: Il campo TESTO non può essere vuoto.");
}
if (controllo){return false}else{return true} 
}
//-->
</script>
</head>
<body>
<?php
if(isset($_POST['invia'])){
	$testo=$_POST['test2'];
	echo strlen($testo)." <br>";//se campo vuoto = 4
	//echo chr($testo[0]." - ".chr($testo[1]." - ".chr($testo[2]." - ".chr($testo[3];
	// output 60 - 98 - 114 - 92 = <br> ?????
	$testo=stripslashes($_POST['test2']);//wis mette le slash
	//se testo in db non metter stipslashes
	echo nl2br($testo)." <br>";//stampa 
}
?>
<form action="provaPerForm.php" method="post" name="form" id="form" OnSubmit="return ControllaForm(this)">
<textarea id="textarea2" name="test2"></textarea>
<br>
<input name="invia" type="submit" id="invia" value="invia">
</form>
</body>
</html>

qualcuno sa dirmi l'errore? e come modificare?
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
45
Napoli
www.lucaruggiero.it
WYSIWYG è l'acronimo di What You See Is What You Get, ovvero, "fai qualcosa senza sapere cosa stai facendo".

Forse non ho capito la domanda... qualìè il problema? Esiste uno script che si chiama WYSIWYG?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao luca
il suo nome è openWisywyg e lo trovi

https://www.mrw.it/script/openwysiwyg_645.html

il problema è questo
1. avevo messo nel js di controllo
if(document.form.test2.value =="") ecc..
e il controllo da sempre TRUE anche con area di testo (apparentemente )vuota, e quindi facendo delle prove mi sono accorto che con areatesto vuota trasmette comunque una stringa, ma ha poca importanza
2. ho quindi modificato il controllo in
var testo=this.document.form.test2.value
if (testo.length < 5 )ecc..
e
senza il this non funzia (??)
scrivo nell'areatesto qualcosa (piu lungo di 5) do invio
appare l'alert "il campo testo non...." (ma non è vero perchè ho scritto)
clicco sull'OK dell'alert
do di nuovo invio, senza cambiare nulla nell'areatesto, e questa volta il form viene inviato
 

Discussioni simili