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 回答