2012-10-23 5 views
-1

Je ne parviens pas à valider la zone de texte ci-dessous, je ne sais pas quel est le problème avec mon code.Impossible de valider la zone de texte

<div id="chooseForm"> 
    <input type="checkbox" name="ArticlesOrderForm" value="ArticlesOrderForm"> 
    <b>Articles Order Form </b> 
</div>'; 



$echo .= ' <script> 
     jQuery(function($) { 
      $(".formGroup").hide(); 
      $("#chooseForm input:checkbox").on("change", function() { 
       if($(this).is(":checked")) { 
        $("#" + $(this).val()).show(); 
       } 
       else { 
        $("#" + $(this).val()).hide(); 
       } 
      }); 
     }); 

    </script>'; 



 $echo .= '<div id="ArticlesOrderForm" class="formGroup"> 
       <legend>Articles Order Form</legend> 
       <b><label for="article_keywords">Keywords/Titles<span class="reqd">*</span> : </label></b> <textarea rows="6" cols="50" id="article_keywords" name="article_keywords" > </textarea> 
      </div>'; 
<br/><br/> 

if($_POST['ArticlesOrderForm'] == 'checked') { 

    if(!isset($_POST['article_keywords']) || empty($_POST['article_keywords'])) { 
    $myerror= '<li>'.__('<strong>Keywords/Titles</strong> - missing.','article_keywords').'</li>'; 
    } 
} 



Je reçois un message 'mots-clés/titres - manquant' si quelqu'un ne pénètre pas dans cette zone de texte. Pourrait quelqu'un s'il vous plaît dites-moi ce qui est mal dans ma logique?

S'il vous plaît trouver les codes complets ici: http://jsfiddle.net/DTcqk/3/ et ici: http://jsfiddle.net/YYAbm/

+1

également, echo scripts scripts non suggérés –

+0

@eicto bande passante gaspillée, support XHTML terrible ou attaque XHR potentielle? Le dernier ne semble pas être un problème ici. –

+0

@JanDvorak bande passante gaspillée, code illisible, mauvaise habbit –

Répondre

2

Votre textarea n'est pas vide par défaut:

<textarea rows="6" cols="50" id="article_keywords" name="article_keywords" > </textarea> 
                you have space here ----^ 

donc il ne sera pas entrer dans votre suite if:

if(!isset($_POST['article_keywords']) || empty($_POST['article_keywords'])) { 

Vous devez utiliser trim() si vous voulez capturer des variables avec des espaces que dans votre validation if, comme ceci:

$_POST['article_keywords'] = trim($_POST['article_keywords']); 
if(!isset($_POST['article_keywords']) || empty($_POST['article_keywords'])) { 
+0

wow frère, j'ai fait ma journée! U donno combien je frappais à un mur depuis de nombreuses heures ... j'étais vraiment incapable de trouver ce petit espace entre ça ..De toute façon maintenant son fonctionnement, Ur genious .. Merci beaucoup bro! Passez une bonne journée :) – Jim

1

Essayez de remplacer

if($_POST['ArticlesOrderForm'] == 'checked') { 

avec

if($_POST['ArticlesOrderForm'] == 'ArticlesOrderForm') { 

Le type d'entrée case ne postez pas "vérifié" it messages l'attribut value de la case à cocher.

+0

pas bro, toujours pas de travail après avoir essayé avec votre ligne .. – Jim

+0

Bro, je n'ai pas eu ceci: La case à cocher de type d'entrée ne publie pas "vérifié" il publie l'attribut de la case à cocher. Signifie ce que je dois faire ..? – Jim

+0

Cela signifie que lorsque vous vérifiez la valeur affichée de ArticlesOrderForm, vous devez vérifier la valeur de la case à cocher, qui était "ArticlesOrderForm" au lieu de vérifier la chaîne "checked". –

Questions connexes