【问题标题】:How to render input form based on radio button checked in rails simple form如何根据在rails简单表单中选中的单选按钮呈现输入表单
【发布时间】:2018-09-03 15:30:27
【问题描述】:

我有两个单选按钮选项,我想根据使用 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>

【问题讨论】:

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


    【解决方案1】:

    只需像这样将change 事件绑定到您的单选按钮,然后为您的表单组添加/删除特定类:

    $(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');
          }
      });
    });
    

    从表单组中删除你的 stying 并将其放在你的 css 文件中的 form-group--inactive 类下。

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

    【讨论】:

    • 它不工作。这就是我更改表单组的方式
      但是现在,两个条件字段是可见的,并且更改功能也不起作用跨度>
    • 应该是这样的:&lt;div class="form-group form-group--inactive show-job-email"&gt;,除了最新的类名之外,另一个相同
    • 我现在有这个
      但没有变化。条件输入字段仍然可见,并且更改功能现在可以正常工作。不知道我做错了什么
    • 你已经在你的css文件中添加了.form-group--inactive { display: none; }
    • 我刚刚将它添加到我的 css 文件中,现在表单输入已隐藏。但是更改功能不起作用。我的js文件和你提供的答案一样。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签