0

あるものを実装したい。ユーザーにメールを送信しますか? はいまたはいいえのラジオボタンがあります。そして、ラジオボタンが「はい」の場合のみ。その下のテキストにより、送信する電子メールの内容を入力できるようにする必要があります。これは私がメールコンテンツ用に持っているものですが、ボタンに依存させる方法がわかりません。

 <div align="center">
  Open orders?
  &nbsp;&nbsp;
  Yes
  <%= f.radio_button :orders_open, true, :class=>"radio-control"%> 
  &nbsp;&nbsp;
  No
  <%= f.radio_button :orders_open, false, :class=>"radio-control"%> 

</div>

<br>

 <div align="center">

  Email users?
  &nbsp;&nbsp;
  Yes
  <%= f.radio_button :email_users, true, :class=>"radio-control"%> 
  &nbsp;&nbsp;
  No
  <%= f.radio_button :email_users, false, :class=>"radio-control", :checked => true %> 

</div>
<br> <br>
<div class="control-group">
  <label class="control-label">
    <%= f.label :email_content, "Note to users" %>
  </label>
  <% if @application_state.orders_open %>
    <div class="controls">
        <%= f.text_area :email_content %>
    </div>
  <% else %>
    <div class="controls">
        <%= f.text_area :email_content %>
    </div>
  <% end %>
</div>
4

1 に答える 1

1

JavaScript を使えば、やりたいことが簡単にできます。ラジオ ボタンの選択変更時にイベントをバインドし、必要な条件に基づいて、email_content テキスト領域を有効または無効にします。

<input type="radio" id="no" name="email_users"/>
<input type="radio" id="yes" name="email_users"/>
<textarea rows="4" cols="50" id="email_content">
</textarea>

jQuery を使用して問題を解決します。

jQuery("input[name=email_users]").change(function (e) {
  if(this.id === "yes") {
    jQuery("#email_content").attr('disabled', 'disabled');
  }
  else if(this.id === "no"){
    jQuery("#email_content").removeAttr('disabled');;
  }
}
于 2012-12-06T21:08:35.377 に答える