0

В моем Rails 4 приложения, которое использует Turbolinks, у меня есть следующий вид:Rails 4: дисплей вертушка с JavaScript на форме представить

<%= form_for [@calendar, @post], html: { multipart: true } do |f| %> 
[...] 
    <div class="actions" id="post_submit_before_spinner"> 
    <%= f.submit @post.new_record? ? "CREATE POST" : "UPDATE POST", :id => :post_submit %> 
    </div> 
    <div class="spinner" id="post_submit_spinner"> 
    <i class="fa fa-refresh fa-spin"></i> Please wait... 
    </div> 
<% end %> 

Я хотел бы, чтобы отобразить счетчик в настоящее время в post_submit_spinner DIV с JavaScript когда форма отправлена.

У меня есть это в app/assets/javascripts/posts.coffee:

$(document).ready -> 
    $('#post_submit_spinner').hide() 
    return 

$(document).getElementById('post_submit').on click() -> 
    $('#post_submit_spinner').show() 
    return 

Вертушка скрыта на странице загрузки - что то, что я хочу - но он не отображается, когда пользователь отправляет форму с кнопкой в ​​post_submit_before_spinner DIV ,

Любая идея, что не так с моим кодом?

ответ

0

Я зафиксировал проблему со следующим кодом в app/assets/javascripts/posts.coffee:

$(document).ready -> 
    $('#post_submit_spinner').hide() 

$(document).ready -> 
    $("#post_submit_before_spinner").click -> 
    $('#post_submit_spinner').show() 
    return 
    return 
2

Я предлагаю добавить определение нажмите слушателя внутри вызова в $.ready функции (так как post_submit элемент не мог присутствовать еще) следующим образом:

$(document).ready -> 
    $('#post_submit_spinner').hide() 
    $('#post_submit').on click() -> 
    $('#post_submit_spinner').show() 
    return 
    return 
+0

Спасибо за ваш ответ. Я понимаю, что вы имеете в виду, и это имеет смысл. Я реализовал код, и он пока не работает. Я получаю следующую ошибку в консоли: 'Uncaught TypeError: $ (...). GetElementById не является функцией'. Есть идеи? –

+0

@ThibaudClement, хорошо знать ... если это помогло, а затем выбрать как лучший ответ :) –

+0

Ну, как упоминалось в моем комментарии, он пока не работает. Не могу принять ответ, если он не решит проблему. –

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