par
pirquessa » 30 janv. 2007, 15:40
Bonjour,
Je dispose d'une page php contenant deux textarea et un input . Les deux textarea sont gérés par TinyMCE.
Je souhaiterais que le form ne soit pas enoyer si certaines conditions ne sont pas réalisés.
Pour ca j'utilise cette fonction :
(initialisation TinyMCE + Script de verification)
Code : Tout sélectionner
<script language="javascript" type="text/javascript" src="./classes/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "exact",
elements : "texte",
theme : "advanced",
plugins : "emotions,preview,table,flash,advhr,flag",
plugin_preview_width : "500",
plugin_preview_height : "600",
flash_wmode : "transparent",
flash_quality : "high",
theme_advanced_buttons1 : "bold,italic,underline,separator,sub,sup,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,fontselect,fontsizeselect,separator,forecolor,backcolor",
theme_advanced_buttons2 : "tablecontrols,|,bullist,numlist,link,unlink,image,cleanup,search,replace,separator,outdent,indent,separator,undo,redo",
theme_advanced_buttons3 : "preview,code,|,emotions,flash,advhr,separator,pays,jeux",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]"
});
</script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "exact",
elements : "apercu",
theme : "advanced",
plugins : "emotions,preview",
plugin_preview_width : "500",
plugin_preview_height : "600",
flash_wmode : "transparent",
flash_quality : "high",
theme_advanced_buttons1 : "bold,italic,underline,separator,sub,sup,separator,fontselect,separator,forecolor,|,cleanup,preview,|,emotions",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
extended_valid_elements : "font[face|color|style],span[class|align|style]"
});
</script>
<script language="JavaScript" type="text/javascript">
function validation_form()
{
valide = true;
alert(document.post.apercu.value + "longeur:" + longeur(document.post.apercu.value));
if (longeur(document.post.apercu.value)<100)
{
valide = false; alert('Ton aperçu est trop court !');
}
if (longeur(document.post.texte.value)<300)
{
valide = false; alert('Le texte est trop court !');
}
if (longeur(document.post.titre.value)<10)
{
valide = false; alert('Le titre est trop court !');
}
if (valide == false)
{
document.post.action = "#";
return valide;
}
else
{
document.post.action = "<?php print $action; ?>";
document.post.submit();
return valide;
}
}
function longeur(text)
{
return text.length;
}
</script>
TinyMCE marche sans problème. De meme ma fonction JS marche tres tres bien quand je n'initialise pas tinyMCE. Le problème survient avec le code en entier (TinyMCE + fonction JS).
Je m'explique:
Ce formulaire sert à éditer des nouvelles. Il est donc d'orrigine remplis en suivant les condition de validation. Si je poste, pas de probleme.
Je fais maitenant un test en vidant le textarea apercu. Je clique sur envoyer (<input type="button" name="Submit" value="Editer la news" onclick="validation_form()"/>) et la j'obtient une alerte JS avec dans la fentre l'ancient contenu du textarea avant l'effacement ... Alors que je devrais obtenir l'alert vide contenant seulement : "Longueur: 0"
Comment cela est il possible ? Que puis je faire ?
Merci de votre aide

Bonjour,
Je dispose d'une page php contenant deux textarea et un input . Les deux textarea sont gérés par TinyMCE.
Je souhaiterais que le form ne soit pas enoyer si certaines conditions ne sont pas réalisés.
Pour ca j'utilise cette fonction :
(initialisation TinyMCE + Script de verification)
[code] <script language="javascript" type="text/javascript" src="./classes/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "exact",
elements : "texte",
theme : "advanced",
plugins : "emotions,preview,table,flash,advhr,flag",
plugin_preview_width : "500",
plugin_preview_height : "600",
flash_wmode : "transparent",
flash_quality : "high",
theme_advanced_buttons1 : "bold,italic,underline,separator,sub,sup,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,fontselect,fontsizeselect,separator,forecolor,backcolor",
theme_advanced_buttons2 : "tablecontrols,|,bullist,numlist,link,unlink,image,cleanup,search,replace,separator,outdent,indent,separator,undo,redo",
theme_advanced_buttons3 : "preview,code,|,emotions,flash,advhr,separator,pays,jeux",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]"
});
</script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "exact",
elements : "apercu",
theme : "advanced",
plugins : "emotions,preview",
plugin_preview_width : "500",
plugin_preview_height : "600",
flash_wmode : "transparent",
flash_quality : "high",
theme_advanced_buttons1 : "bold,italic,underline,separator,sub,sup,separator,fontselect,separator,forecolor,|,cleanup,preview,|,emotions",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
extended_valid_elements : "font[face|color|style],span[class|align|style]"
});
</script>
<script language="JavaScript" type="text/javascript">
function validation_form()
{
valide = true;
alert(document.post.apercu.value + "longeur:" + longeur(document.post.apercu.value));
if (longeur(document.post.apercu.value)<100)
{
valide = false; alert('Ton aperçu est trop court !');
}
if (longeur(document.post.texte.value)<300)
{
valide = false; alert('Le texte est trop court !');
}
if (longeur(document.post.titre.value)<10)
{
valide = false; alert('Le titre est trop court !');
}
if (valide == false)
{
document.post.action = "#";
return valide;
}
else
{
document.post.action = "<?php print $action; ?>";
document.post.submit();
return valide;
}
}
function longeur(text)
{
return text.length;
}
</script>[/code]
TinyMCE marche sans problème. De meme ma fonction JS marche tres tres bien quand je n'initialise pas tinyMCE. Le problème survient avec le code en entier (TinyMCE + fonction JS).
Je m'explique:
Ce formulaire sert à éditer des nouvelles. Il est donc d'orrigine remplis en suivant les condition de validation. Si je poste, pas de probleme.
Je fais maitenant un test en vidant le textarea apercu. Je clique sur envoyer (<input type="button" name="Submit" value="Editer la news" onclick="validation_form()"/>) et la j'obtient une alerte JS avec dans la fentre l'ancient contenu du textarea avant l'effacement ... Alors que je devrais obtenir l'alert vide contenant seulement : "Longueur: 0"
Comment cela est il possible ? Que puis je faire ?
Merci de votre aide :oops: