<input type="hidden" id="amenities" value="@Model.Amenities" />
<script type="text/javascript">
$(function () {
arr = new Array();
var str = document.getElementById("amenities").value;
arr = str.split(",");
for(count =0;count<arr.length;count++)
{
$("input[type=checkbox][value=arr[count]]").prop("checked",true);
}
</script>
在模型中有一个名为&#34;的设施&#34;类型字符串。它存储所有的设施,如无线网络,游泳池,公园等与分隔符(,)。当我进入编辑页面时,我希望检查所有那些先前为该特定属性存储的便利设施。
答案 0 :(得分:1)
我建议您在生成视图时在服务器上执行此操作。您所需要的只是:
public class MyModel
{
...
public string[] Amenities { get; set; }
...
}
然后在视图中:
@Html.Checkbox("WiFi", @Model.Amenities.Contains("WiFi"))
@Html.Checkbox("Pool", @Model.Amenities.Contains("Pool"))
当然它只是一个例子,在现实生活中你可能会有一个可能的设施列表,你可以迭代渲染每个设施的复选框。我也建议使用枚举而不是字符串作为值。
答案 1 :(得分:1)
这有效:
<script type="text/javascript">
$(document).ready(function(){
var arr = $("#amenities").val().split(",");
$('input[type=checkbox]').each(function(){
if($.inArray($(this).val(), arr) >= 0){
$(this).attr("checked",true);
}
});
});
</script>
答案 2 :(得分:0)
<script type="text/javascript">
$(function () {
var arr = new Array();
var str = $("#amenities").val();
arr = str.split(",");
$('input[type=checkbox]').each(function(key,val){
if(jQuery.inArray( $(this).val(), arr){
$(this).prop("checked",true);
}
})
});
</script>
检查上面的代码。!!
一个建议,因为你正在使用jQuery,GO使用jQuery语法。