需要根据模型数据中的字符串设置复选框
Need to set checkboxes as checked based on string from model data
我试图根据存储在模型中的逗号分隔的字符串设置选中的属性。这个问题是选中的属性不存在。有人知道我做错了什么吗?以下是我的文件:
控制器返回的数据…
V1P01,V1P02,V1P03
视图代码。
$(document).ready(function () {
var array = "@Model.IncidentVehicle.VA_Sub1VehicleDamage".split(',');
for (var i in array)
$("[name=myCheckboxName][value=" + $.trim(array[i]) + "]").attr('checked', true);
});
<div class="carCBsPassenger">
<input name="V1P01" id="V1P01" type="checkbox" value="V1P01" style="border: none;" />
<input name="V1P02" id="V1P02" type="checkbox" value="V1P02" style="border: none;" />
<input name="V1P03" id="V1P03" type="checkbox" value="V1P03" style="border: none;" />
<input name="V1P04" id="V1P04" type="checkbox" value="V1P04" style="border: none;" />
<input name="V1P05" id="V1P05" type="checkbox" value="V1P05" style="border: none;" />
<input name="V1P06" id="V1P06" type="checkbox" value="V1P06" style="border: none;" />
<input name="V1P07" id="V1P07" type="checkbox" value="V1P07" style="border: none;" />
<input name="V1P08" id="V1P08" type="checkbox" value="V1P08" style="border: none;" />
<input name="V1P09" id="V1P09" type="checkbox" value="V1P09" style="border: none;" />
<input name="V1P10" id="V1P10" type="checkbox" value="V1P10" style="border: none;" />
<input name="V1P11" id="V1P11" type="checkbox" value="V1P11" style="border: none;" />
<input name="V1P12" id="V1P12" type="checkbox" value="V1P12" style="border: none;" />
<input name="V1P13" id="V1P13" type="checkbox" value="V1P13" style="border: none;" />
<input name="V1P14" id="V1P14" type="checkbox" value="V1P14" style="border: none;" />
</div>
没有一个复选框的name
属性为myCheckboxName
。此外,您缺少一些开始大括号,并且在末尾有一个结束大括号,导致语法错误。试试这个:
var array = "V1P01,V1P02,V1P03".split(',');
for (var i = 0; i < array.length; i++) {
$("#" + $.trim(array[i])).attr('checked', true);
};
例子小提琴
同样,假设来自服务器的列表格式没有改变,您可以通过替换字符串来通过它们的id
选择元素来删除循环:
var selector = '#' + array.replace(/',/g, ',#');
$(selector).attr('checked', true);
例子小提琴
您应该使用.prop()方法。我还为jQuery .each()切换了for循环。
var array = ['V1P01', 'V1P02', 'V1P03'];
$.each(array, function(key, val){
$('input[value="' + $.trim(array[key]) + '"]').prop('checked', true);
});
希望这对你有帮助!
您应该更改选择器并使用prop()方法。或者在value中使用单引号。
$(".carCBsPassenger input[value='" + $.trim(array[i]) + "']").prop('checked', true);
相关文章:
- 将字符串的一部分设置为数组的一部分
- 将localStorage字符串设置为Integer
- 从 UTC 字符串设置日期格式
- 如何根据 URL 中符号后的第一个字符串设置变量
- 从本地存储 base64 字符串设置背景图像
- 从类似 csv 的字符串设置文本字段值
- 将 CodeMirror 子字符串设置为粗体而不更改模式
- jQuery:从参数字符串设置表单状态
- 如何使用字符串设置局部变量
- 按数字和字符串设置新的 Date() 会给出不同的结果
- 将字符串设置为类似日期的格式
- 避免基于特定URL字符串设置cookie
- 如何在将javascript字符串设置为从Django变量传播的值时转义引号
- 使用完全限定字符串设置JSON属性
- 需要根据模型数据中的字符串设置复选框
- 使用来自java类的字符串设置输入值
- 使用包含英国格式日期的字符串设置new Date()
- CRM 2011:使用javascript从字符串设置日期时间字段
- 将一个HTML字符串设置为等于javascript中的一个变量
- 如何将逗号分隔字符串设置为参数