根据用户选择的选项设置单选按钮的值

根据用户对三个下拉列表的选择,我想从下面的对象中设置给定单选按钮的值。

例如,如果我从第一个选择标签中选择“Dropdown 1-1”并将另外两个留空,则radio_button_4现在将具有值“r(5000-R)”。

如果我选择“Dropdown 1-1”和“Dropdown 2-2”并留下第三个空白,则radio_button_4的值将显示为“r(10000-R)”。

我尝试了不同的嵌套循环变体,但似乎无法找出正确的顺序来获得我想要的结果。

$(document).ready(function() { var objs = [{ selected_option_value_1: "1-1", selected_option_value_2: "", selected_option_value_3: "", output: "5000-R", name_1: "ABC_1", name_2: "", name_3: "", radio_btn_name: "radio_button_4" }, { selected_option_value_1: "1-1", selected_option_value_2: "2-2", selected_option_value_3: "", output: "10000-R", name_1: "ABC_1", name_2: "MNO_2", name_3: "", radio_btn_name: "radio_button_4" }, { selected_option_value_1: "1-1", selected_option_value_2: "2-2", selected_option_value_3: "3-3", output: "15000-R", name_1: "ABC_1", name_2: "MNO_2", name_3: "YZ_3", radio_btn_name: "radio_button_4" }]; $("#submit").on("click", function() { $("#wrapper").find("input[type='radio']").each(function(i, o) { var btn_name = $(this).attr("name"); $.each(objs, function(index, rule) { if (btn_name == rule.radio_btn_name) { console.log(rule); } }); }); }); }); 
  
Dropdown 1-1 Dropdown 1-2 Dropdown 1-3

Dropdown 2-1 Dropdown 2-2 Dropdown 2-3

Dropdown 3-1 Dropdown 3-2 Dropdown 3-3


的jsfiddle

达维拉! 据我了解你的问题 – 你想根据下拉选择和你的objs规则动态地为你的单选按钮分配一个值。

你似乎非常接近解决方案。 我希望以下代码有助于了解您所缺少的内容。

    




1)我将组添加到你的objs;

2)改变了select中的类组;

3)每次更改某些选项时,我都会将你的js更改为call函数;

4)创建函数以基于所选值比较selected_option_rule来获取新值。

https://jsfiddle.net/shjgj2s2/5/

 var objs = [{ group: "group_1", selected_option_value1: "1-1", selected_option_value2: "", selected_option_value3: "", output: "5000-R", name_1: "ABC_1", name_2: "", name_3: "", radio_btn_name: "radio_button_4" }, { group: "group_2", selected_option_value1: "1-1", selected_option_value2: "2-2", selected_option_value3: "", output: "10000-R", name_1: "ABC_1", name_2: "MNO_2", name_3: "", radio_btn_name: "radio_button_4" }, { group: "group_3", selected_option_value1: "1-1", selected_option_value2: "2-2", selected_option_value3: "3-3", output: "15000-R", name_1: "ABC_1", name_2: "MNO_2", name_3: "YZ_3", radio_btn_name: "radio_button_4" }]; function ChangeRadio(btn_name, group_class){ $.each(objs, function(index, rule) { if(rule.selected_option_value1 == $('.group_1').val() && rule.selected_option_value2 == $('.group_2').val() && rule.selected_option_value3 == $('.group_3').val()) { $("input[name=" + rule.radio_btn_name +"]").val("r(" + rule.output + ")"); return false; }else{ $("input[name=radio_button_4]").val("r()"); } }); console.log($("input[name=radio_button_4]").val()); } $(document).ready(function() { $("select").on("change", function(e){ var btn_name = $("option:selected", this).attr("name"); var group_class = $(this).attr("class"); ChangeRadio(btn_name, group_class); }); $("#submit").on("click", function() { //somenthing }); });