[RUBY] Initialisez toutes les valeurs dans le formulaire [Rails] en un seul clic (définition de méthode d'aide + JavaScript)

Postscript (10/06/2020)

Avec la méthode de cet article, la seule action que vous pouvez réaliser est l'initialisation (réinitialisation) du formulaire. Comment le rendre complètement clair (vide) est présenté dans cet article.

Notes créées avec le formulaire de recherche avancée dans [Rails] ransack

introduction

Lors de la mise en œuvre d'un formulaire de recherche qui vous permet d'ajouter diverses conditions de recherche, je me suis demandé s'il existait un moyen de réinitialiser les conditions de recherche en un seul clic.

En conséquence, j'ai pu l'implémenter par la méthode suivante, je vais donc le résumer.

environnement

procédure

Pour donner un bref aperçu ** 1. Définissez une méthode pour générer une balise de bouton de réinitialisation dans la méthode d'assistance ** ** 2. Appelez-le en vue ** ** 3. Écrivez un processus pour désactiver la case à cocher avec js ** J'ai l'impression de l'envoyer avec trois

1. Définition de la méthode d'assistance

N'importe quel fichier fera l'affaire, mais cette fois, nous le définirons dans helpers / application.rb.

helpers/application.rb


module ApplicationHelper
  def reset_tag(value = "Reset form", options = {})
    options = options.stringify_keys
    tag :input, { type: "reset", value: value }.update(options)
  end
end

2. Appeler le fichier de vue

ruby:search.html.haml


%div
  = reset_tag 'clair', id: 'js_clear_btn'
%div
  = f.submit 'Terminé'

À l'origine, Rails n'a pas reset_tag, mais comme il a été défini par une méthode d'assistance, il peut être appelé de cette manière.

Ajustez avec CSS et ressemblez à ceci ↓ スクリーンショット 2020-06-03 13.53.06.png

3. Une description qui désactive la case à cocher avec JavaScript

Dans mon cas, je n'ai pas pu effacer (décocher) la case à cocher avec le bouton de réinitialisation, alors j'ai écrit JavaScript là-bas.

Le code dépend fortement de l'environnement, je vais donc l'omettre.

résultat

f923d6ccbb11ae2bb0c6d320371bc226.gif Comme ça, j'ai pu créer un bouton qui initialise tous les text_field, number_field, select et checkbox!

référence

Utilisez le bouton pour initialiser le formulaire dans Rails

Recommended Posts

Initialisez toutes les valeurs dans le formulaire [Rails] en un seul clic (définition de méthode d'aide + JavaScript)
Arguments avec des valeurs par défaut Prenez la méthode full_title du tutoriel Rails comme exemple
[Rails] conçoit une méthode d'aide
définition de la méthode ruby