Rails& Javascript检查选择了哪个单选按钮

时间:2017-07-01 09:59:47

标签: javascript jquery ruby-on-rails

这是我的观点代码(在form_for中)

<div class="form-group col-xs-6">
   <%= f.label :Competition_type %> <br>
   <%= f.radio_button :type_competition, :value => "regression", :checked => true, id: "type_regression" %>
   <%= f.label :type_competition, "Regression"%>
   <%= f.radio_button :type_competition, :value => "classification", id: "type_classification" %>
   <%= f.label :type_competition, "Classification"%>
</div>
<div class="form-group col-xs-6">
   <%= f.label :Performance_metric %>
   <%= f.select(:metric, options_for_select([['Mean Absolute Error'],['Root Mean Squared Error'],['Weighted Mean Absolute Error'], ['Accuracy'],['Mean Utility']]), {}, {class: "form-control", id: "selectMetric"}) %>
</div>

有人帮我在JavaScript(和/或JQuery)中执行一个函数,这样当选择单选按钮“regression”时,选择选项只显示['Mean Absolute Error'],['Root Mean Squared Error' ],['加权平均绝对误差'],当选择单选按钮“分类”时,只显示其他选项:['Accuracy'],['Mean Utility']。

我会非常感谢你。我不知道这样做,我需要继续我的大学最终项目。

2 个答案:

答案 0 :(得分:0)

您可以使用

在javascript中执行此操作
if ($('#type_regression').checked){
 // your radio button is checked
}

现在,如果您想从服务器获取数据 使用ajax get函数

$.get(function(){
url:
successs:

});

否则你可以在本地为两个数组定义2个数组,并在if中显示它们 并且不要预先定义你的option_for_select ..而是在javascript中更新它们,如果阻止

你也可以参考这个 - &gt;

Rails - Dynamic Select - Collection Select

答案 1 :(得分:0)

下面的例子使用jquery。为单选按钮编写更改侦听器,检查值并显示/隐藏选项。

**注意:此方法在safari / IE中不起作用。解决方案是禁用隐藏/显示。让我知道你是否是一个safari用户。我会修改我的答案**

$("input").change(function(e){
$("select").val('');
  if(e.target.value == "regression"){
     $(".regression").show();
     $(".classification").hide()
    }else{
     $(".classification").show()
     $(".regression").hide();
    }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" value ="regression" name="radio_btn">regression
  <br>
   <input type="radio" value="classification" name="radio_btn">classification
   <br>
   
<select>
<option class="regression">Mean Absolute Error</option><option class="regression">Root Mean Squared Error</option><option class="regression">Weighted Mean Absolute Error</option><option class="classification">Accuracy</option><option class="classification">Mean Utility</option>
</select>