2016-05-26 5 views
2

これは愚かな質問かもしれませんが、エラーを返す場合はフォーム上のトグルを展開する必要があります。フォームが送信されると、ページがリロードされるため、スライダダウンは最初は非表示になります。ラベルがhasClass 'error'の場合、トグル展開

フォームをダウンtoogleするためのリンクがあります:HTMLは次のようになります

<span id="slideDownCreateMail" styleId="createEmail" class="createNewEmailGallery">Expand</span> 

<div class="showCreateNewEmailAccount" > 
      <fieldset> 
       <h3>Enter mail</h3> 
       <p id="createNewEmailAccount"> 
        <label for="name">Email:</label> 
        <html:text property="address" styleClass="border" styleId="address" /> 
       </p> 
       <div><one:error property="address" element="label" /></div> 

       <p> 
        <label for="mailPassword1">Password:</label> 
        <html:password property="mailPassword1" styleClass="border" styleId="mailPassword1" /> 
       </p> 
       <div><one:error property="mailPassword1" element="label" /></div> 

       <p> 
        <label for="mailPassword2">Password (again):</label> 
        <html:password property="mailPassword2" styleClass="border" styleId="mailPassword2" /> 
       </p> 
       <div><one:error property="mailPassword2" element="label" /></div> 

      </fieldset> 
     </div> 

私はこのようにjQueryでそれをやろうとしています:

$(document).ready(function(){ 

     $("#slideDownCreateMail").click(function(){ 
      $(".showCreateNewEmailAccount").slideToggle("slow"); 

      /*if (!$(".showCreateNewEmailAccount").hasClass("error")) { 
       $(".showCreateNewEmailAccount").css('display','block'); 
      }*/ 
     }); 
     $('.showCreateNewEmailAccount label').has('error').css('display', 'block'); 
    }); 

しかし、上記のどれもうまくいかないようです。 エラーは、このタグに返されます。

<p> 
    <label for="mailPassword1">Password</label> 
     <html:password property="mailPassword1" styleClass="border" styleId="mailPassword1" /> 
    </p> 
<div><one:error property="mailPassword1" element="label" /></div> 

誰もがトリックを行うかもしれないものの任意のアイデアを持っていますか? :) ありがとうございます。

+0

は、htmlのですか? – Mark

+0

あなたのブラウザ 'Console'で何が返されるのかを追加してください。 @PatrickZiebell –

+0

いいえ、それはストラットです。 –

答えて

1

HTMLの多くを見ることなく私だけ...

HTML推測することができます - あなたがタグに

<one:error property="mailPassword1" element="label" styleId="errorLabel" /> 

をIDを追加することができた場合は をjQueryの -

$(document).ready(function(){ 

    if ($('#errorLabel').hasClass('error')) { 
    $('#errorLabel').css('display', 'block'); 
    } 

}); 

の場合要素にIDを追加することはできません。.showCreateNewEmailAccountで100%を確認してから

編集 - あなたはこれを行うことができます

$(document).ready(function(){ 

    if ($('.showCreateNewEmailAccount label').hasClass('error')) { 
    $('.showCreateNewEmailAccount').css('display', 'block'); 
    } 

}); 
+0

私はHTMLも含むように質問を更新しました。 –

+0

問題のラベルにIDを追加できますか? 私の最初のjQueryの例は可能でしょうか? – Mark

+0

ああ、私はあなたが何を意味するか残念申し訳ありません。 – Mark

1

:パスワードのASP:

var $field = $('.showCreateNewEmailAccount'); 
var hasError = $field.find('label.error').length; 

$field.slideToggle(hasError); 
関連する問題