2012-01-11 12 views
2

jQuery用のValidateプラグインを使用してクライアントの検証を実装していますが、TinyMCEエディタコンポーネントを使用するフォームフィールドが不足しています。これにより、実際の編集領域のiframetextarea要素を含むフォームフィールドのタグの下に、非常に複雑なコントロールツリーがレンダリングされます。私は直接textareaアクセスすることはできませんので、私は以下のように、.validate()を呼び出す前に、「必要」属性を追加します。私も空wpsm_bodyでフォームを送信する際TinyMCEエディタでjQuery Validateプラグインを使用する

jQuery(function() { 
    jQuery("#wpsm_body").addClass("required"); 
    jQuery("#wpsm-send-mail") 
      .validate(
        { 
         errorContainer : "#wpsm-top-error-container, #wpsm-bottom-error-container", 
         errorLabelContainer : "#wpsm-top-error-container ul", 
         wrapper : "li", 
         messages : { 
          wpsm_from : "The message has no 'From' address. The administrator can set a default for this on the SuperMail 'Settings' page.", 
          wpsm_subject : "The message has no subject.", 
          wpsm_body : "The message has no body.", 
          wpsm_text : "The message has no body." 
         } 
        }); 
}); 

はしかし、私はクライアントの検証エラーを取得していません。

バックグラウンドはWordPressプラグインの中にあり、TinyMCEはwp_editor関数でレンダリングされますが、これはあまりにも大きな違いがあるとは思えません。

投稿日:これはまったく役に立たないと思われますが、ここではHTMLがブラウザに表示されます。これに続くTinyMCEによって生成されたHTMLは400行で、関連性はありません。

<form id="wpsm-send-mail" action="theform.php" method="POST" enctype="multipart/form-data"> 
<div id="wp-wpsm_body-wrap" class="wp-editor-wrap tmce-active"> 
    <link rel='stylesheet' id='editor-buttons-css' href='http://localhost/wordpress/wp-includes/css/editor-buttons.dev.css?ver=20111114' 
     type='text/css' media='all' /> 
    <div id="wp-wpsm_body-editor-tools" class="wp-editor-tools"> 
     <a id="wpsm_body-html" class="hide-if-no-js wp-switch-editor switch-html" onclick="switchEditors.switchto(this);"> 
      HTML</a> <a id="wpsm_body-tmce" class="hide-if-no-js wp-switch-editor switch-tmce" 
       onclick="switchEditors.switchto(this);">Visual</a> 
     <div id="wp-wpsm_body-media-buttons" class="hide-if-no-js wp-media-buttons"> 
      <a href="http://localhost/wordpress/wp-admin/media-upload.php?post_id=0&#038;TB_iframe=1" 
       class="thickbox add_media" id="wpsm_body-add_media" title="Add Media" onclick="return false;"> 
       Upload/Insert 
       <img src="http://localhost/wordpress/wp-admin/images/media-button.png?ver=20111005" 
        width="15" height="15" /></a></div> 
    </div> 
    <div id="wp-wpsm_body-editor-container" class="wp-editor-container"> 
     <textarea class="wp-editor-area" rows="20" cols="40" name="wpsm_body" id="wpsm_body"></textarea></div> 
</div> 
</form> 

ここでの唯一の関連する項目

formtextarea、及びその id属性です。

+0

一部のHTMLがいいだろうに検証するためのコードである – ori

+0

@ori、私の編集を参照してください。 HTMLを追加することが可能であることを追加しました。 – ProfK

答えて

2

あなたは既にTinyMCEのためのjsファイルが含まれていると仮定し、次のtinyMCE

を使用して、クライアント側の検証を行っているがTinyMCEをエディタ

<script> 
    $(document).ready(function() { 

     var $btn = $("#<%=btnSubmit.ClientID %>"); 
     var $txtEditor = $(".txtEditor"); 

     $btn.click(function() { 
      if (tinyMCE.get($txtEditor.attr("id")).getContent() == "") { 
       alert("hi"); 
      } 
      else { 
       alert("bye"); 
      } 
      return false; 
     }) 

    }); 

</script> 


<div> 
<asp:TextBox id="TextBox1" runat="server" TextMode="MultiLine" CssClass="txtEditor212"></asp:TextBox> 
      <asp:TextBox id="txtEditor" runat="server" TextMode="MultiLine" CssClass="txtEditor"></asp:TextBox> 
     </div> 
     <div> 
     <asp:Button id="btnSubmit" runat="server" Text="Save" onclick="btnSubmit_Click" /> 

     </div> 
</asp:Content> 
</div> 
0

TinyMCEがWordpressでどのように使われているのかよくわかりません。

しかし私はTinyMCEを以前使用していましたが、textareaはリッチテキストエディタで編集すると更新されません(フォーム送信時に更新されます)。私は、必要なときにテキストエリアを更新するために次のコードを使用しました。(0120)

+0

ありがとうございますが、私の問題は、テキストエリアが更新されていないということではありません。それが更新されていなくても、すなわち空白のままであっても、私は妥当性検査のエラーを受け取りません。 – ProfK

+0

あなたが正しいです、私の答えは次の問題を助けているかもしれません...あなたのコードがうまくいくように見えるので、いくつかの良い古いデバッグが順番にあります:wpがエディタを作成するときにtextareaは空のままですか?テキストエリアのIDですか?等 – ori

関連する問題