Передача значения текстового поля другой формы - PullRequest
0 голосов
/ 23 июля 2011

Немного погуглил безуспешно. Я пытаюсь получить значение текущего значения в текстовом поле другой формы и передать его контроллеру. Есть какие-нибудь идеи о том, как это сделать?

Ответы [ 2 ]

0 голосов
/ 23 июля 2011

У меня не так много деталей, но один из способов сделать это независимо от формы - извлечь данные из текстового поля через jQuery, а затем сделать AJAX-вызов контроллера:

Итак, в вашем application.js вы можете сделать:

$.ajax("/controller/action", {
  cache: false,
  data: {
    _method: "POST",
    textfield-data-param: (textfield-data)
  },
  success: function (jqXHR, status) {
    //Do something on a success
  },
  complete: function (jqXHR, status) {
    //do something on complete
  },
  type: "POST"
});

В вашем контроллере вы можете сделать что-то вроде:

  def action
    @data = params[textfield-data-param]

    respond_to do |format|
      if @data.save
        format.js { head :ok }
      else
        format.js { head :unprocessable_entity } # Maybe find a better status code to use.
      end
    end
  end

Извините, это очень широкий ответ, но, надеюсь, это даст вам преимущество.

0 голосов
/ 23 июля 2011

Похоже, вы пытаетесь получить данные из 2 разных форм на одной HTML-странице. Если я вас правильно понимаю, это не возможно на бэкэнде. Когда браузер отправляет форму, он только отправляет поля для этой единственной формы. Если вы хотите разделить значение между двумя различными формами, вам нужно будет использовать JavaScript либо…

  1. Используйте одну форму, динамически добавляйте / удаляйте поля и устанавливайте URL действия
  2. Скопируйте поля из неподтвержденной формы в отправленную форму, когда пользователь нажимает кнопку отправить (до того, как браузер фактически отправит запрос).
  3. Соберите данные из полей и объедините их вместе, затем отправьте запрос через AJAX и перенаправьте браузер на страницу результатов (или сделайте что-нибудь еще с результатом).

Имеет смысл?

EDIT:

Что касается вашего комментария, что вариант 2 будет работать для вас, это довольно просто:

$('#form-1').submit(function(){
  $('#form-2 [name]:not([type="submit"])').appendTo(this);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...