javascript - 如何根据在rails简单表单中选中的单选按钮渲染输入表单

标签 javascript jquery ruby-on-rails radio-button simple-form

我有两个单选按钮选项,我想根据使用 JQuery 单击的单选按钮来显示输入表单。这是我的单选按钮的简单表单输入

<div class="form-group">
  <label class="col-md-1 control-label"></label>
  <div class="col-md-9">
    <%= f.input :job_application_type, as: :radio_buttons, collection: [['Apply By Email', 'Email'], ['Apply By Url', 'Url']], :label => "How to apply" %>
 </div>
</div>

如果第一个单选按钮被选中,我想显示这个输入

<div class="form-group show-job-email" style="display:none">
<label class="col-md-1 control-label"></label>
<div class="col-md-9">
  <%= f.input :job_email, :label => "Job Email" %>
</div>

如果它是第二个单选按钮,我想显示此输入

<div class="form-group show-job-url" style="display:none">
<label class="col-md-1 control-label"></label>
<div class="col-md-9">
  <%= f.input :job_url, :label => "Job Url" %>
</div>

最佳答案

只需将 change 事件绑定(bind)到单选按钮,如下所示,然后为表单组添加/删除特定类:

$(document).ready(function() {
  $('input[type="radio"][name="job_application_type"]').change(function() {
      if (this.value == 'Email') {
          $('.form-group.show-job-url').addClass('form-group--inactive');
          $('.form-group.show-job-email').removeClass('form-group--inactive');
      }
      else if (this.value == 'Url') {
          $('.form-group.show-job-url').removeClass('form-group--inactive');
          $('.form-group.show-job-email').addClass('form-group--inactive');
      }
  });
});

从表单组中删除您的样式,并将其放置在 css 文件中的 form-group--inactive 类下。

.form-group--inactive { display: none; }

关于javascript - 如何根据在rails简单表单中选中的单选按钮渲染输入表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49475337/

相关文章:

javascript - 鼠标移动时的图像移动问题(相反方向)

javascript - 如何使用 jQuery 更改创建的 D3 对象的 CSS?

javascript - 出现错误,无法读取未定义的哈希值

php - 使用 javascript/jquery 选择用户已检查的所有收件箱消息

ruby-on-rails - 如何在 Rails 中显示 "Extend" View

ruby-on-rails - Rails - 通过表插入 has_many

ruby-on-rails - 具有多个连接的 ActiveRecord 查询无法识别关系

javascript - 嵌套渲染不影响 DOM

javascript - window.location.href 和 location.reload() 不从服务器加载更新的页面

javascript - HTML 使常规按钮像一组单选按钮一样工作