这是我的观点代码(在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']。
我会非常感谢你。我不知道这样做,我需要继续我的大学最终项目。
答案 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;
答案 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>