2009-10-14 2 views
0

У меня есть несколько элементов в моих представлениях, которые должны срабатывать после того, как пользователь выберет элемент из выпадающего списка.Rails: перезапуск события обмена до выбора теряет фокус

Моя выбирает выглядеть следующим образом:

<%= collection_select(:project, :id, projects, 'id', 'name', { },{:style => "width:150px", :onchange => "document.getElementById('project_btn').click()" }) %> 

<span class="control_button_light" style="display:none;"><%= submit_tag 'jump_to_project', :id => "project_btn" %></span> 

<%= observe_field("project_id", :frequency => 1, :function => "document.getElementById('project_btn').click()") %> 

Проблема заключается в том, что функция observe_field стреляет до выбора теряет фокус. Другими словами, элемент submit «нажимается» через 1 секунду после выбора фокуса, даже если пользователь не закончил выбирать из выпадающего списка.

Кто-нибудь знает, как задержать наблюдателя от нажатия на кнопку отправки до тех пор, пока выбор не теряет фокус?

ответ

0

Попробуйте это.

<%= observe_field("project_id", :frequency => 1, :function => "submit_it") %> 

<script> 
function sumbit_it{ 
    setTimeout(function() { $('project_btn').click(); }, 1250); 
} 
</script> 

После перечитывая этот вопрос, я не думаю, что вам нужно observe_field, так как у вас уже есть OnChange для этого поля.

+0

Спасибо! Очень признателен. – 2009-10-21 20:21:09

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