我在“视图”中有一个表单,单击该按钮后,会将充满数据的模型发送到我的Controller的ActionResult方法。
在View中,我基于ViewModel的某些列表内容生成复选框。基本上,复选框的数量取决于页面加载时列表中项目的数量,因此会话之间可能会有所不同。
现在复选框正在获取与列表中的项目相对应的值。
我想在表单中包括复选框。但是我不知道如何将它们的值与Form的Model一起动态传递给Method,以用于Form中的其他控件,因为它们的ID,名称和数量可能会有所不同。
一个人知道如何识别已选中的复选框的值吗?
答案 0 :(得分:0)
在Razor / CSHTML中:
<input type="checkbox" id="GB" class="CHK" onchange="selectCountry()" /> GB
<input type="checkbox" id="IE" class="CHK" onchange="selectCountry()" /> IE
<input type="checkbox" id="FI" class="CHK" onchange="selectCountry()" /> FI
<input type="checkbox" id="SE" class="CHK" onchange="selectCountry()" /> SE
<input type="checkbox" id="DK" class="CHK" onchange="selectCountry()" /> DK
在JS中(用于识别变量):
var CountryChosen=''; //create empty variable to be filled
function selectCountry() {
if (document.getElementById("GB").checked == true) {
CountryChosen = "GB";
}
if (document.getElementById("IE").checked == true) {
CountryChosen = "Ireland";
}
if (document.getElementById("FI").checked == true) {
CountryChosen = "Finland";
}
if (document.getElementById("SE").checked == true) {
CountryChosen = "Sweden";
}
if (document.getElementById("DK").checked == true) {
CountryChosen = "Denmark";
}
}
您还可以为多个选择做一个空数组:
CountriesChosen = [];
而不是CountryChosen = X,执行.push()以添加到完整数组,然后将变量作为数组的一部分调用...无论如何,这都是值得思考的。 然后,您可以使用JS变量传递给控制器和操作结果,但这取决于操作结果在做什么(例如JSON调用可以通过AJAX / JQUERY调用,并使用CountryChosen作为变量)。
答案 1 :(得分:0)
您可以使用下面的jQuery选择器轻松地做到这一点。保持所有复选框的名称相同,并使用以下选择器。
function getChecked() {
var checked_items = '';
$("input[name='item']:checked").each(function () { // get the checked items
checked_items = checked_items + "&item=" + $(this).val();
});
alert('JQUERY : Checked items are : ' +checked_items)
checked_items = ''
var items = document.getElementsByName("item")
for (i=0;i<items.length;i++){
if (items[i].checked)
checked_items = checked_items + "&item=" + items[i].value;
}
alert('JAVASCRIPT : Checked items are : ' +checked_items)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<input type="checkbox" name="item" value="1" />1
<input type="checkbox" name="item" value="2" />2
<input type="checkbox" name="item" value="3" />3
<input type="checkbox" name="item" value="4" />4
<input type="button" value="Submit" onclick="getChecked()">