2012-12-12 3 views
0

У меня есть следующая форма для публикации данных с помощью Ajax.рельсы form_tag не отправляет

<%= form_tag(check_answer_path, :id =>'myForm', :method => 'post', :remote => true) do %> 
    some form fields here... 
<%= submit_tag('Next', :class => 'btn btn-primary') %></td> 

Но форма не отправляется, когда я нажимаю кнопку «Далее». К моему удивлению, когда я удаляю идентификаторы: id и: remote, форма отправляется без проблем (но перезагрузка страницы, которую я не хочу).

ЦЕЛЬ: Я хочу отправить форму, используя ajaxForm() для обработки обратного вызова i.e $("#myForm").ajaxForm(). Поэтому мне нужен атрибут :remote, и мне также нужно идентифицировать мою форму (используя атрибут :id).

Почему моя форма не отправляется, когда я включаю :id и :remote атрибуты?

Am Использование рельсов 3.2.8 и jquery-rails.

Заранее спасибо.

ответ

2

Добавление пульта дистанционного управления в тег формы означает, что он отправит запрос с использованием JS.

Таким образом, он действительно отправляет форму, но не представляет ее ожидаемым образом. В контроллере добавить следующее:

respond_to do |format| 
    format.js 
    format.html 
end 

и вы сможете ответить на этот запрос места на file.js.erb в ваших взглядах и поместить необходимый JS код для выполнения запроса.

Надеюсь, что это поможет.

+0

Мне этот ответ. Посмотрим, разрешит ли он проблему парня. –

+0

@AlSayed Gamal Да, я думаю, что это то, что мне нужно, но здесь есть. Если пользователь нажимает следующий, я хочу отправить форму через ajax, и ответ будет формой html. Я хочу снова отобразить форму. Его приложение для веб-экзаменов развивается, поэтому, если пользователь нажимает следующий, я отправляю форму (через ajax) и снова показываю форму со следующим вопросом. Поэтому я поместил этот <% = redirect_to exam_question_path (@exam, @next_question)%> в мой show.js.erb для перенаправления на следующий вопрос. но его не работает – alfu

+0

redirect_to не будет работать в представлении, он работает только в контроллере. вы можете перенаправить, используя javascript: location.href =

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