Очистка полей формы, внутри модальных - PullRequest
1 голос
/ 29 октября 2019
Rails 5.2
Bootstrap 4

У меня есть модал со встроенной формой. Это тестовая форма, которая сохраняет тестовую заметку в таблицу. Сохранение работает нормально, но раздел комментариев не очищается при нажатии кнопки «Сохранить».

Как мне сделать так, чтобы очистить (не закрывать модальное)?

#TestModal.modal.fade aria-hidden="true"
  .modal-dialog role="document"
    .modal-content
      .modal-header Test Modal
        h3.modal-title
        button.close aria-label="Close" data-dismiss="modal" type="button"
          span aria-hidden="true"  ×
      .modal-body
        = simple_form_for :test_model, url: test_model_url, method: :post do |f|
          .form_group
            = f.text_area :note, rows: 15
          button.btn.btn-secondary data-dismiss="modal" type="button" Cancel
          button.btn.btn-primary type="submit" Save

Вотчто я пробовал:

#TestModal.modal.fade aria-hidden="true"
  .modal-dialog role="document"
    .modal-content
      .modal-header Test Modal
        h3.modal-title
        button.close aria-label="Close" data-dismiss="modal" type="button"
          span aria-hidden="true"  ×
      .modal-body
        = simple_form_for :test_model, url: test_model_url, method: :post do |f|
          #NoteEntryForm.form_group
            = f.text_area :note, rows: 15
          button.btn.btn-secondary data-dismiss="modal" type="button" Cancel
          button.btn.btn-primary type="submit" Save

И создал views / notes / create.js.slim и вставил в него:

javascript:
    $('#NoteEntryForm').val('')

Но когда я пытаюсь сохранить, я получаюследующее сообщение об ошибке:

NotesController#create is missing a template for this request format and variant. request.formats: ["text/html"] request.variant: []

1 Ответ

0 голосов
/ 29 октября 2019

Поскольку форма отправляется через AJAX / JS, вы также можете ответить на нее с помощью JS. Вам нужен файл представления с тем же именем, что и действие контроллера, которое получает отправленные параметры, и у файла представления должно быть расширение .js.slim.

Допустим, у вас есть контроллер заметок, подобный этому:

class NotesController < ApplicationController
  def create
    @note = Note.new(note_params)
    @note.save
  end
end

Затем вам нужен файл представления с именем create.js.slim, внутри которого вы можете использовать jquery для очистки формы:

$('#test_model_note').val('');

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

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