我正在尝试根据存储在模型中的逗号分隔字符串设置checked属性。这个问题是被检查的属性不存在。有谁看到我做错了什么?这就是我所拥有的:
从控制器返回的数据......
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>
答案 0 :(得分:0)
没有一个复选框的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);
答案 1 :(得分:0)
您应该使用.prop()方法。我还为jQuery .each()切换了for循环。
var array = ['V1P01', 'V1P02', 'V1P03'];
$.each(array, function(key, val){
$('input[value="' + $.trim(array[key]) + '"]').prop('checked', true);
});
希望这有帮助!
答案 2 :(得分:0)
您应该更改选择器并使用prop()方法。并且可能在值中使用单引号。
$(".carCBsPassenger input[value='" + $.trim(array[i]) + "']").prop('checked', true);