如何根据所选单选按钮传递单选按钮值?
How can i pass radio button values based on the selected one?
我的视图中有以下单选按钮。如何传递所选单选按钮的值和数组索引中小于所选单选按钮的值?
foreach (var record in Model.Months.Select(x=>$"{x.Substring(4,2)}/{x.Substring(0,4)}").OrderByDescending(x=>x))
{
<div class="radio col-12">
<div class="row">
<div class="col-5" style="">
@Html.RadioButton("MonthsAvailable", record, true, new { id = record, @class = "m-r" })<label>@record</label>
</div>
</div>
</div>
}
HTML 生成的代码
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="082020" name="MonthsAvailable" type="radio" value="202008" checked="checked">
<div class="check-icon-radio"><i></i></div>
082020
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="092020" name="MonthsAvailable" type="radio" value="092020">
<div class="check-icon-radio"><i></i></div>
092020
</label>
</div>
我的模型
public class MonthsAvailable
{
public List<string> Months{ get; set; }
}
我的操作收到
public async Task<IActionResult> MonthsAvailable(List<string> monthsAvailable)
{
...
}
我的单选按钮如下所示
我正在努力完成
When I select 062020 pass only 062020 to the controller,
When I select 072020 pass 062020 and 072020,
when I select 082020 pass 062020, 072020 and 082020
when I select 092020 pass 062020, 072020, 082020 and 092020 and etc
您可以给所有 .row
div 一些 outer
div 。然后,每当单击提交按钮时,首先使用此获取 checked
单选按钮值,我们将获得选中单选按钮的 div 的 index()
编号。最后,使用 for-loop
从其他单选按钮获取值并将它们推入 array
并使用 ajax.
传递相同的值
演示代码 :
$("#save").on("click", function() {
var checked_value = []; //declare this
var value = $("input[name=MonthsAvailable]:checked").val() //get value of checked checkboxs
var lengths = $("input[value=" + value + "]").closest(".row").index() //get index
console.log($("input[value=" + value + "]").closest(".row").index())
//loop
for (var i = 0; i <= lengths; i++) {
checked_value.push($(".outer .row:eq(" + i + ") input:radio").val()) //push value inside array
}
console.log(JSON.stringify(checked_value))
//ajax call
$.ajax({
contentType: 'application/json; charset=utf-8',
type: 'POST',
url: 'yoururl',
data: JSON.stringify(checked_value),
success: function(data) {
console.log("done")
}
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--only add this outer div-->
<div class="outer">
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="082020" name="MonthsAvailable" type="radio" value="202008" checked="checked">
<div class="check-icon-radio"><i></i></div>
202008
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="092020" name="MonthsAvailable" type="radio" value="092020">
<div class="check-icon-radio"><i></i></div>
092020
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="082020" name="MonthsAvailable" type="radio" value="2020018" checked="checked">
<div class="check-icon-radio"><i></i></div>
2020018
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="092020" name="MonthsAvailable" type="radio" value="0920202">
<div class="check-icon-radio"><i></i></div>
0920202
</label>
</div>
</div>
<button type="button" id="save">Save</button>
我的视图中有以下单选按钮。如何传递所选单选按钮的值和数组索引中小于所选单选按钮的值?
foreach (var record in Model.Months.Select(x=>$"{x.Substring(4,2)}/{x.Substring(0,4)}").OrderByDescending(x=>x))
{
<div class="radio col-12">
<div class="row">
<div class="col-5" style="">
@Html.RadioButton("MonthsAvailable", record, true, new { id = record, @class = "m-r" })<label>@record</label>
</div>
</div>
</div>
}
HTML 生成的代码
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="082020" name="MonthsAvailable" type="radio" value="202008" checked="checked">
<div class="check-icon-radio"><i></i></div>
082020
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="092020" name="MonthsAvailable" type="radio" value="092020">
<div class="check-icon-radio"><i></i></div>
092020
</label>
</div>
我的模型
public class MonthsAvailable
{
public List<string> Months{ get; set; }
}
我的操作收到
public async Task<IActionResult> MonthsAvailable(List<string> monthsAvailable)
{
...
}
我的单选按钮如下所示
我正在努力完成
When I select 062020 pass only 062020 to the controller,
When I select 072020 pass 062020 and 072020,
when I select 082020 pass 062020, 072020 and 082020
when I select 092020 pass 062020, 072020, 082020 and 092020 and etc
您可以给所有 .row
div 一些 outer
div 。然后,每当单击提交按钮时,首先使用此获取 checked
单选按钮值,我们将获得选中单选按钮的 div 的 index()
编号。最后,使用 for-loop
从其他单选按钮获取值并将它们推入 array
并使用 ajax.
演示代码 :
$("#save").on("click", function() {
var checked_value = []; //declare this
var value = $("input[name=MonthsAvailable]:checked").val() //get value of checked checkboxs
var lengths = $("input[value=" + value + "]").closest(".row").index() //get index
console.log($("input[value=" + value + "]").closest(".row").index())
//loop
for (var i = 0; i <= lengths; i++) {
checked_value.push($(".outer .row:eq(" + i + ") input:radio").val()) //push value inside array
}
console.log(JSON.stringify(checked_value))
//ajax call
$.ajax({
contentType: 'application/json; charset=utf-8',
type: 'POST',
url: 'yoururl',
data: JSON.stringify(checked_value),
success: function(data) {
console.log("done")
}
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--only add this outer div-->
<div class="outer">
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="082020" name="MonthsAvailable" type="radio" value="202008" checked="checked">
<div class="check-icon-radio"><i></i></div>
202008
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="092020" name="MonthsAvailable" type="radio" value="092020">
<div class="check-icon-radio"><i></i></div>
092020
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="082020" name="MonthsAvailable" type="radio" value="2020018" checked="checked">
<div class="check-icon-radio"><i></i></div>
2020018
</label>
</div>
<div class="row">
<label class="form-check-inline p-l-md m-b-sm m-r-md">
<input class="hidden-up pos-abs monthsAvailable" id="092020" name="MonthsAvailable" type="radio" value="0920202">
<div class="check-icon-radio"><i></i></div>
0920202
</label>
</div>
</div>
<button type="button" id="save">Save</button>