【问题标题】:reset checkbox value ajax beginform response in mvc 5在 mvc 5 中重置复选框值 ajax beginform 响应
【发布时间】:2016-11-15 07:18:53
【问题描述】:

在我的应用程序中,我有一个 ajax beginform:

@using (Ajax.BeginForm("DeletePages", "Home", new AjaxOptions { HttpMethod = "POST", OnSuccess = "OnSuccessDelete", OnFailure = "OnFailureDelete" }, new { id = "ToolBarActionsForm" }))
{
    @Html.AntiForgeryToken()

    <div class="col-xs-2 list-group icon-bar">
        <a class="list-group-item delete" href="#" title="Delete selected page(s)" data-tool="Delete"><i class="fa fa-2x fa-trash" aria-hidden="true"></i></a>
    </div>

    <div class="col-xs-10 thumbnailArea">

    </div>

}

 $(".delete").on("click", function () {

        $("#ToolBarActionsForm").submit();
    });

此表单将部分视图返回到 thumbnailArea,其中包含一些数据和复选框:

@model List<Doc>
  @for (int i = 0; i < Model.Count; i++ )
    {
            <div class="thumbnailItem">
                <div class="imageTitle">  
                    @fileName
                    @Html.HiddenFor(f => Model[i].FileName)
                    <button class="btn btn-default pull-right" id="selectAll">Select All</button>
                </div>
                <ul class="thumbnails row">
                    @for(int p = 0; p < Model[i].DocPages.Count; p++)
                    {
                        <li class="col-xs-2">
                            <label class="control control--checkbox">
                               @Html.CheckBoxFor(pg => Model[i].DocPages[p].PageCheck)
                                <div class="control__indicator">

                                </div>
                            </label>
                      </li>
                                 //more code here 
                      }                    
                      </ul>


            </div>

    }

还有我的 onSuccessDelete 函数:

function OnSuccessDelete(response) {


    var checkboxes = $(response).find('input[type="checkbox"]');

    $.each(checkboxes, function (i, val) {
        val.checked = false;
    });

    //console.log(response);
    $('.thumbnailArea').html(response);

}

问题是复选框不会被重置。我希望它们在从 ajax 表单返回的响应中都是错误的。但是,这是行不通的。其他一切正常,只是复选框不会自行重置。

【问题讨论】:

  • 您没有任何带有class="check-box" 的输入。但是你的脚本有什么意义。如果您不希望他们检查何时加载部分,则将 PageCheck 的值设置为 false。
  • 刚刚编辑了答案。但这不是导致问题的原因。即使我在控制器中将 pageCheck 设置为 false,它也不起作用。
  • 什么(当然是个问题)?如果每个PageCheck 属性的值为false,那么所有复选框都将被取消选中。你认为你想用这个脚本做什么?

标签: javascript jquery ajax asp.net-mvc checkbox


【解决方案1】:

你必须通过 attr 取消选中它。

$('#myCheckbox').attr('checked', false);

【讨论】:

  • 试试这个 $( "#myCheckbox" ).prop( "checked", false);
猜你喜欢
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多