如何使用javascript勾选页面加载的复选框?

时间:2014-08-28 06:22:11

标签: javascript jquery asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

<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;类型字符串。它存储所有的设施,如无线网络,游泳池,公园等与分隔符(,)。当我进入编辑页面时,我希望检查所有那些先前为该特定属性存储的便利设施。

3 个答案:

答案 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语法。