質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

解決済

1回答

2534閲覧

railsでのフォーム初期化をしたい

mns

総合スコア3

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

0クリップ

投稿2021/05/12 07:41

前提・実現したいこと

・railsフォーム(search_form_for)のsearch_fieldやradio_buttonを初期化したい
・該当の検索フォームがあるページは検索結果表示も兼ねている

発生している問題・エラーメッセージ

<input type="reset"> や <%= f.submit "clear", type: :reset %>では入力前の状態に戻るが、条件検索後は検索時の条件(保持されたフォーム)への初期化となってしまう。
・下記コードでclearボタンを押下するとラジオボタンはボタン1、テキストはクリアされるが、
ボタン2やテキスト入力しての検索後はボタン2、入力したテキストへ戻す処理になってしまう

該当のソースコード

Ruby

1 2<%= search_form_for @search do |f| %> 3 <p><label>radio</p> 4 <p> 5 <label> 6 <%= f.radio_button :radio_cont, '', checked: true %> 7 <span>ボタン1</span> 8 </label> 9 <label> 10 <%= f.radio_button :radio_cont, '1' %> 11 <span>ボタン2</span> 12 </label> 13 <p> 14 <%= f.label :text_cont, "テキスト名で検索" %> 15 <%= f.search_field :text_cont %> 16 </p> 17 <%= f.submit "clear", type: :reset %> 18 <div class="actions"><%= f.submit "search" %></div> 19<% end %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

@search.result.~後に

ruby

1@search = Model.ransack

Model部分は適当なものに置き換えて

投稿2021/05/12 08:05

asm

総合スコア15149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asm

2021/05/12 10:29

なるほど javascriptでリセット動作をプログラミングする必要がありますね
mns

2021/05/14 08:45 編集

上記の参考ページのようにフォームの子要素を探してクリアの方がスマートに思えたのですが、うまく動かないため、後日改修予定として一旦下記のような関数にしました。 ご回答、ありがとうございました。 function clearText() {   var text = document.getElementById("text_id");   var button = document.getElementById("button_id");   textForm.value = '';   button.checked = true; }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問