web-dev-qa-db-ja.com

onchangeイベントを追加してタグを選択する方法rails

ここにonchangeイベントを追加するにはどうすればよいですか?

フレームワーク:Rails
データベース:MySQL

データベースからオプションを入力しているので、options_from_collection_for_selectを使用しました。

select_tag(:variable,options_from_collection_for_select(:all, :id, :name))
17
Nave

select_tag は、最終パラメーターとしてoptionsハッシュを取ります。このハッシュでは、選択に任意のHTML属性を追加できます。したがって、onchange属性を追加するには:

select_tag :variable, options_from_collection_for_select(:all, :id, :name), :onchange => 'your_onchange_handler()'
23

次のようなものを試してください:

:onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})
7
marsjo

Select_tagの場合は、次を追加するだけです。

{:onchange => "myHandler();" }

また、onchangeが機能しない場合は、大文字のCを使用してonChangeを試してみてください。

最後に、select_tagをフォームselectと混同しないように注意してください。

Select_tagではなくフォームselectに関してのみ、同様の質問に対する私の回答を参照してください

フォーム選択へのOnchangeイベントの追加

6
AmitF

onchange属性をインラインで追加することをお勧めします。

select_tag(:variable,options_from_collection_for_select(:all, :id, :name)), {:onchange => "(function(e){ e.target.value }).apply(this,arguments)"}

私の場合、名前付き関数をどこに配置するかわからないか、単純なタグを作成するためだけに関数を作成するのが面倒な場合があります。したがって、人々はインライン関数を書く傾向があります。

ただし、変数(eventなど)が定義されていないため、{onchange: "e.target.value"}のような単純な行は機能しません。

解決策は、引数を受け入れる自己実行関数になります

0
jmjm