2011-12-17 2 views
1

У меня есть форма рельсов, которая, как и все рельсы форма и если что-то не удается появляется стандартные Рельсы ошибка:rails 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, но есть один, поэтому я предполагаю, что Rails загружает этот div на странице после его загрузки.

Любые идеи, как адресовать это и показывать только #spinner, когда есть ДЕЙСТВИТЕЛЬНО нет #errorExplanation на странице?

+0

Я подозреваю, что событие щелчка стреляет _before_ rails 'form validator. – Shad

ответ

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

Edit: Использование .length вычислить содержание дел. Если 0, его не существует.

Отредактировано :-)

+0

Он вернет true только в том случае, если элемент существует. http://jsfiddle.net/W2nfx/. TS спрашивает «когда на странице ДЕЙСТВИТЕЛЬНО нет #errorExplanation». – Richard

+0

Eish, мой плохой :-(Я принимаю ваше наказание. Http://jsfiddle.net/W2nfx/1/ – Richard

Смежные вопросы