Удаленная форма с тэгом submit в Rails 3 - PullRequest
1 голос
/ 07 августа 2010

У меня есть удаленная форма с кнопками ручной работы, использующими теги. Я использую data-remote = true в теге формы, но я не знаю, как использовать тег ссылки для публикации данных формы в форме отправки. Когда я использую data-remote с data-method, он создает удаленный вызов с пустыми параметрами, поэтому я не вызываю функцию submit () для моей формы.

Моя форма:

<form accept-charset="UTF-8" action="/tasks" data-remote="true" method="post">

и мой тег ссылки под тегами формы:

создает удаленный вызов с пустыми параметрами POST:

<a class='minibutton' data-remote='create' href='/tasks/create' data-method='post'>

не отправляет POST-информацию, только заголовок:

<a class='minibutton' data-remote='create' href='/tasks/create'>

Как вызвать элегантный метод submit () формы? Я думаю, мне не нужно создавать хаки Javascript, чтобы это работало. Я?

1 Ответ

2 голосов
/ 01 октября 2010

Я полагаю, что есть 2 способа решить эту проблему:

1.Я вижу, что вы используете класс «минибаттон» в своей ссылке, который предполагает, что вы все равно должны выглядеть как кнопка.Поэтому вместо ссылки (или тега <input type="submit">) используйте тег внутри кнопки:

<button type="submit" value="Submit">

и стилизуйте его по своему вкусу с помощью CSS.Вы даже можете использовать значки на них.Прочтите этот пост для получения подробной информации и готового к использованию фрагмента кода CSS.

2.Если вы по-прежнему хотите использовать ссылку, вы можете установить атрибуты «id» в ссылке и в форме, а также добавить наблюдателя событий щелчка для отправки формы.Предполагая, что вы используете Prototype, поместите что-то вроде этого в верхнюю часть страницы:

<%= javascript_tag do %>
    $('YOUR-LINK-ID').observe(
        'click', 
        function(el, value) {
          $('YOUR-FORM-ID').request({
            onSuccess: function(response) {eval(response)}
          })
        }
    );
<% end %>

Предполагается, что тип вашего ответа - text / javascript.Если это не так, вам придется использовать обратные вызовы onSuccess и / или onComplete, чтобы заменить часть вашей страницы содержимым ответа.

См. Документацию по Form.request и Event.observe для получения подробной информации о наблюдении и отправке формы.

Этот вопрос также может быть полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...