0

いくつかのページ要素のモードを制御するために、いくつかのラジオボタンを使用したいと思います。基本的な要件は、アクティブなモードをユーザーに表示し、別のボタンが選択されたときに適切なモード切り替え機能を起動することです。だから私は次のことを試しました。

<%= radio_button_tag(:label_type, "tooltip", :checked, :onchange => 'console.log("tooltip")')%>
<%= label_tag(:label_type_tooltip, "Enable Tooltip") %><br />
<%= radio_button_tag(:label_type, "labels", :onchange => 'console.log("labels")') %>
<%= label_tag(:label_type_labels, "Enable Labels") %>

これは、2番目のradio_button_tagに渡された:onchangeパラメーターがなくても機能するようですが、(上記のように)これを使用すると、onchangeイベントを2番目のラジオボタンに添付せず、2番目のラジオボタンをチェックに設定するという紛らわしい効果があります(私はしたくない)そのように:

<input checked="checked" id="label_type_tooltip" name="label_type" onchange="console.log(&quot;tooltip&quot;)" type="radio" value="tooltip">
<label for="label_type_tooltip">Enable Tooltip</label><br>
<input checked="checked" id="label_type_labels" name="label_type" type="radio" value="labels">
<label for="label_type_labels">Enable Labels</label>

なんで?どうすれば動作させることができますか?

4

1 に答える 1

4

Railsのドキュメントによると、ここにradio_button_tagの引数があります。

radio_button_tag(name, value, checked = false, options = {})

'checked'値を渡すのを忘れているようです。次を試してください

<%= radio_button_tag(:label_type, "labels", false, :onchange => 'console.log("labels")') %>

ただし、このアプローチは良い習慣とは見なされないため、代わりにjsファイルまたはcoffeeファイルにバインディングを追加することをお勧めします。詳細については、jqueryapiを参照してください。ありがとう

于 2012-06-12T11:43:51.583 に答える