2011-12-17 17 views
1

は、私はすべてのレールの形に似ているレールフォームを持っているし、何が失敗した場合、標準のレールのエラーが表示されます。レールerrorExplanation私のjQueryと競合?

<div id="errorExplanation" class="errorExplanation"> 
    <h2>2 errors prohibited this account from being saved</h2> 
    <p>There were problems with the following fields:</p> 
    <ul><li>First Name can't be blank</li> 
    <li>Number is not a valid credit card number</li></ul> 
</div> 

しかし、私がクリックされた提出したときに、スピナーをポップアップする必要がページ上のいくつかのjQueryを持っています:

$(document).ready(function(){ 
    $('#add_account').click(function(){ 
    console.log($('#errorExplanation').length); 
    $('#spinner').show(); 
    }); 
}); 

しかしconsole.logは常に0であり、私はページには#errorExplanationが存在しない場合にのみ表示されるようにスピナーを必要としています。

console.logは0がある私に言っているが、1つ私はRailsがそのロードされた後のページに、このdiv要素をロードしている推測しているがあります。

これに対処する方法はありますか?ページには#errorExplanationが本当にない場合は#spinnerしか表示されませんか?

+0

クリックイベントが発生していると思われます。要素が存在する場合 – Shad

答えて

1
$(document).ready(function(){ 
    $('#add_account').click(function(){ 
    if(!$('#errorExplanation').length){ 
     $('#spinner').show(); 
    } 
    }); 
}); 

編集:div要素の内容を計算する 使用.LENGTH。 0場合、それは存在しません。

編集済み:-)

+0

にのみtrueを返します。 http://jsfiddle.net/W2nfx/。 TSは「ページに#errorExplanationが本当にないとき」と尋ねる。 – Richard

+0

Eish、私はあなたの罰を受け入れる私の悪い:-(。http://jsfiddle.net/W2nfx/1/ – Richard