2011-12-26 3 views
0

前置スパンタグを隠す方法がわかりません。私は、フォームでエラーメッセージとしてspanタグを付加次のjQueryコードを持っている:JQuery前置要素を隠す

$('.mcEmail').each(function() { 
     var mcEmailCheck = $(this).val(); 
     var mcEmailRegex = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 

     if(!mcEmailCheck.match(mcEmailRegex)) { 
      mcResponse('- Incorrect Email format!', true); 
      $(this).parent().prepend('<span class="mcCustResponse">- Incorrect Email format!</span>'); 
      $(this).addClass('mcError').fadeOut().fadeIn(); 
     } 
    }); 

は、それから私は、次のことを試してください。

$('.mcCustResponse').click(function(){ 
    $(this).fadeOut(1000); 
}); 

同じ他のすべての検証に使用されます。エラーメッセージが正常に表示されます。私はこれらのスパンタグで何かを試してみることができ、何も動作しません。隠すことはできません、フェードアウト、削除など私は間違って何ですか?

ありがとうございました!

+0

前に申し訳ありませんが、私はそれを考え出しました。私が関数内にclickイベントを置くと、それは機能します。 – user1002039

答えて

1
$('.mcCustResponse').live("click", function(){ 
    $(this).fadeOut(1000); 
}); 

または

$('.mcCustResponse').bind("click", function(){ 
    $(this).fadeOut(1000); 
}); 
+0

ありがとう!これは完璧で、私が学ぶために探していたものです。 – user1002039

0

後にそれを追加し、操作し、その後、最初のスパンを作成については何:

var span = '<span class="mcCustResponse">- Incorrect Email format!</span>'; 
span.hide(); 
$(this).parent().prepend(span); 

... 

$(this).parent().find('span').show(); 

は、この情報がお役に立てば幸い! :)

+0

はい、これは素晴らしいアイデアです。ありがとうございました! – user1002039

+0

喜んで助けてください!あなたの問題を解決した場合、答えを正しいとマークすることを検討してください...または少なくともupvote! :) –

1

使用しているjqueryのバージョンは?バージョンによっては.live()または.on()を使用する必要があります。問題は、ページが読み込まれたときにクラスmcCustResponseを持つスパンが存在しないことです。 .click()のコードブロックは、読み込み時にページ上の要素のイベントのみを登録します。今すぐクラスmcCustResponseを持つすべての要素にイベントを登録し、将来は.live()または.on()を使用してイベントを登録する関数を作成できます。

http://api.jquery.com/on/から.on() jqueryの1.7

http://api.jquery.com/live/から.live() 1.7