如何使用javascript在页面加载时勾选复选框? $(函数(){ arr=新数组(); var str=document.getElementById(“便利设施”).value; arr=str.split(“,”); 对于(计数=0;计数 $(函数(){ var arr=新数组(); var str=$(“#便利设施”).val(); arr=str.split(“,”); $('input[type=checkbox]')。每个(函数(键,值){ if(jQuery.inArray($(this.val(),arr){ $(this).prop(“选中”,true); } }) });

如何使用javascript在页面加载时勾选复选框? $(函数(){ arr=新数组(); var str=document.getElementById(“便利设施”).value; arr=str.split(“,”); 对于(计数=0;计数 $(函数(){ var arr=新数组(); var str=$(“#便利设施”).val(); arr=str.split(“,”); $('input[type=checkbox]')。每个(函数(键,值){ if(jQuery.inArray($(this.val(),arr){ $(this).prop(“选中”,true); } }) });,javascript,jquery,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,检查上述代码 有一个建议,因为您使用的是jQuery,所以请使用jQuery语法。我建议您在生成视图时在服务器上执行此操作。您只需要: <script type="text/javascript"> $(function () { var arr = new Array(); var str = $("#amenities").val(); arr = str.split(","); $('input[type=

检查上述代码


有一个建议,因为您使用的是jQuery,所以请使用jQuery语法。

我建议您在生成视图时在服务器上执行此操作。您只需要:

<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>
然后在视图中:

public class MyModel
{
...
   public string[] Amenities { get; set; }
...
}
当然,这只是一个例子,在现实生活中,您可能会有一个可能的便利设施列表,您可以反复查看,以呈现每个便利设施的复选框。此外,我建议使用字符串作为值和枚举,而不是字符串。

这样做:

@Html.Checkbox("WiFi", @Model.Amenities.Contains("WiFi"))
@Html.Checkbox("Pool", @Model.Amenities.Contains("Pool"))

$(文档).ready(函数(){
var arr=$(“#便利设施”).val().split(“,”);
$('input[type=checkbox]')。每个(函数(){
if($.inArray($(this.val(),arr)>=0){
$(this.attr(“选中”,true);
}
});
});

为什么不在生成页面时在服务器上选中它?我的意思是,你有数据,并将其作为隐藏字段值放入一个分隔字符串中,以便稍后使用javascript检查复选框?有什么意义?我尝试了你的方法。我将其更改为一个文本框,并显示所有便利设施。但我想勾选那些复选框@Model.professionals.Bro中出现了值。我尝试了你的方法,但没有效果。谢谢你的建议。我没有使用字符串数组,但它仍然使用“string”类型,而不需要任何脚本进行拆分。使用数组有什么具体原因吗?一般来说,如果你必须存储某些东西的多个项目,那么你都可以使用它y将它们存储在数组、列表、字典、哈希表等中。字符串用于文本数据。当您将项目存储在逗号分隔的字符串中时,您将有几个含义:
string.Contains()
IEnumerable.Contains
“parking.Contains”(“park”)不同==true
。搜索字符串中的子字符串与检查给定项是否在列表/数组/哈希表中是完全不同的操作。是的,这非常有效。由于我使用MVC,我更喜欢使用@html元素。尽管我已将您的代码保存在注释中。谢谢。
@Html.Checkbox("WiFi", @Model.Amenities.Contains("WiFi"))
@Html.Checkbox("Pool", @Model.Amenities.Contains("Pool"))
<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>