除非为真,否则Ruby on rails无法填充表单

时间:2012-12-06 20:14:06

标签: ruby-on-rails-3 forms email views radio-button

我想实现一些东西。要发送给用户的电子邮件吗?是或否单选按钮。并且只有当单选按钮说是。如果下面的文字允许此人填写要发送的电子邮件内容。这就是我对电子邮件内容的看法,但我不知道如何使它依赖于按钮。

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

1 个答案:

答案 0 :(得分: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');;
  }
}