2011-08-04 2 views
0

J'utilisais une condition onsubmit pour renvoyer false si le champ de texte ne contenait pas plus de 10 caractères mais il a arrêté de se soumettre du tout à l'instant, je ne pense pas avoir changé quoi que ce soit moins la condition mais évidemment j'ai dû faire quelque chose.value.length <10 return false ne fonctionnait pas

<form class="form-new" action="insert/insert.php" method="post" onsubmit="if (document.getElementById('post-input').value.length < 10) return false;"> 
    <textarea class="form-new" id="post-input" name="text"></textarea><br/> 
    <input type="hidden" name="ciudad" value="<?=$city;?>"> 
    <input type="text" name="colegio" value="<?=$group;?>"> 
    <input class="form-new" type="submit" value="Publicar"/> 
</form> 

Y a-t-il un moyen de contourner? Ou est-ce que je le fais juste mal? Merci

+0

"Fonctionne" ici: http://jsfiddle.net/MBawQ/ –

+0

Cela fonctionne pour moi aussi, avez-vous vérifié si d'autres JS le cassent? Que dit firebug? – Kumar

+0

@Felix Kling: Pourquoi ça ne marche pas ici: http://jsfiddle.net/YNcU4/? – Naor

Répondre

0

Voici your example. Mais jetez un oeil, si vous retournez false dans onsubmit le formulaire sera envoyé quand même. Pour effectuer alerte ou quelque chose comme ça, vous devriez faire quelque chose comme ceci:

<script type="text/javascript"> 
    function checkLength() { 
     var textarea=document.getElementById('post-input'); 
    alert(textarea.value.length >= 10); 
     if (textarea.value.length >= 10) { 
      document.getElementById('myform').submit(); 
     } 
    } 
</script> 

<form class="form-new" action="insert/insert.php" id="myform" method="post"> 
    <textarea class="form-new" id="post-input" name="text"></textarea><br/> 
    <input type="hidden" name="ciudad" value="<?=$city;?>"> 
    <input type="text" name="colegio" value="<?=$group;?>"> 
    <input class="form-new" type="button" value="Publicar" onclick="checkLength()"/> 
</form> 

et c'est le lien: http://jsfiddle.net/YNcU4/1/.

MISE À JOUR: Veuillez lire les commentaires. Le code d'origine devrait fonctionner.

+0

Non, si vous renvoyez false de 'onsubmit', le formulaire ne doit pas être publié. – Jamiec

+0

Il est préférable de lier la validation à l'événement 'submit' que de le lier à l'événement' click' du bouton submit. Un formulaire peut être envoyé sans cliquer sur le bouton. 'return false' fonctionne également pour l'événement' submit'. Et à part ça, JS est désactivé, votre formulaire deviendra inutile. –

+0

@Felix Kling: D'accord avec vous - mon erreur. – Naor

Questions connexes