2009-09-24 7 views
1

J'ai un éditeur Rich HTML appelé JhtmlArea et il fait un Iframe sur une zone de texte. J'ai un jeu de validation sur cette zone de texte mais puisque JhtmlArea fait un Iframe il cache la zone de texte et rien n'est inséré dans cette zone.Comment utiliser le plugin Jquery.Validate avec un iframe?

Donc, ma validation ne tirera jamais. Alors, comment puis-je valider un iframe avec jquery.validate?

http://jhtmlarea.codeplex.com/

+0

Que voulez-vous exactement à valider dans un textarea? – halocursed

Répondre

0

Voulez-vous valider si l'utilisateur a quitté le vide textarea? Je suppose.

Vous avez deux façons de faire l'OMI. Je spécule que vous allez avoir un bouton « Soumettre », donc dans ce scenarion:

  • Vous pouvez copier chaque événement clé qui va dans l'iframe à la zone de texte, en cliquant si ce bouton est comme vous écriviez directement dans la zone de texte; (attention aux performances)
  • Appelez une méthode qui copie le contenu iframe dans la zone de texte immédiatement après avoir cliqué sur le bouton de soumission.

Je n'ai pas vérifié votre source d'application, donc je ne sais pas si un iframe est vraiment la meilleure approche.

+0

Eh bien, je ne sais pas si un iframe est la meilleure approche, mais ces plugins éditeur Rich Html semblent les utiliser. Donc c'est soit vivre avec un iframe ou ne pas utiliser ces plugins. Donc, votre dire sur soumettre copier les choses d'abord à la zone de texte puis sumbit le formulaire? – chobo2

+0

Oui, c'est la meilleure approche dans ce cas à mon avis. Vous devriez également tester cette solution de contournement avec de gros morceaux de texte pour voir comment les navigateurs se comportent, pour voir si un div "chargement" est nécessaire, etc. – GmonC

+0

Hmm vous pensez qu'un maximum de 600 caractères prendrait du temps à copier depuis le jhtml à textarea? – chobo2

-1

Mettez l'autre champ de texte caché sous la forme existante

comme celui-ci

<input type="text" name="txt_field" id="txt_field" class="validate[required]" value="" style="display:none;"/> 

ce serait la partie du formulaire

donc appliquez la validation sur ce champ qui a lié à la iframe

vous avez juste à définir sa valeur sur la base du contenu de l'iframe

si iframe a un contenu puis définissez la valeur du champ de texte caché et si le contenu dans le iframe est vide défini alors il null

$("#form_id").validationEngine({'custom_error_messages': { 
      '#txt_field': { 
       'required': { 
        'message': "validation message goes here" 
       } 
      } 
    } 
}); 


    $('#form_submit_btn').click(function() { 
      var message = $.trim($("#iframe_id").contents().find("body").text()); 
      if (message != '') { 
       $("#txt_field").val($("#iframe_id").contents().find("body").html()); 
      } 
      else{ 
       $("#txt_field").val(''); 
      } 
    }); 
+0

Le moteur de validation jQuery n'est pas le plugin dont il parle. – Sparky

Questions connexes