Как добавить строку в поле ввода, не показывая ее? - PullRequest
0 голосов
/ 30 мая 2018

Я создаю приложение в Rails, и у меня есть форма, где пользователи могут указать свой возраст.Когда они отправляют 20, я хочу передать его на следующую страницу как 20 years old.

<%= form_tag age_path, method: "POST", id: 'age', remote: true do %>
  <%= text_field_tag 'age-question', nil %>
  <%= submit_tag "Submit", id:"submit-age" %>
<% end %>

Я добавил этот бит, и он работает, однако перед отправкой он добавляет в поле ввода years oldи я не хотел бы показывать это пользователю.

$('#age').submit(function() {
  var txt = $('#age-question');
  txt.val(txt.val() + " years old");

});

Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 30 мая 2018

Форма отправляет данные в Rails, используя params.Таким образом, вы можете достичь того, что вы пытаетесь сделать в контроллере.

Например, если ваша форма отправляется на ages_controller.rb и предполагается, что метод create обрабатывает ввод, тогда вы можете выполнитьвнутри метода create.

def create    
  params[:age][:age_question] = (params[:age][:age_question] + " years old") if params[:age][:age-question]
  # some other code
end

Другой альтернативой является использование в вашей модели обратных вызовов .Вы можете выполнять определенные действия в определенной точке жизненного цикла объекта.

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