【问题标题】:How to persist check-box checked - MVC/JQuery如何持久选中复选框 - MVC/JQuery
【发布时间】:2015-09-04 05:03:17
【问题描述】:

我正在使用 MVC 框架,在我的页面上我有几个复选框,并且基于用户选中的复选框,我正在显示带有输入/按钮等的 div...但是当用户发布页面时,如果页面有刷新整个页面的任何错误,我的选择都消失了,我必须再次选中复选框以显示 div。

我的问题是如何坚持选择?在这种情况下如何更新选择项是选中哪个复选框并更新控制器中的属性EmployeeChk

我尝试过这样的事情:

.模型类

property bool EmployeeChk {get; set;}
property bool EmployerChk {get;set;}

//查看页面:

<table width="auto">
        <tr>
            <th>
                Employee
            </th>
            <td>
                @Html.CheckBox("Employee")
            </td>
        </tr> 
    </table>

<fieldset id="emp" style="@(Model.EmployeeChk ? "" : "display: none")" class="fieldset-auto-width">
<legend>
    <legend>
        Employee Display
    </legend>

    @using (Html.BeginForm("EmployeeServer", "EmployeeForm", FormMethod.Post))
    {
        @Html.ValidationSummary(true)

        <div>..... </div>

    }

</fieldset>

JQuery:

<script>
    $(document).ready(function() {

        $('#Employee').change(function() {
            if (this.checked) { 
                $('#emp').show();
            }  
        });
 });
</script>

【问题讨论】:

  • 将您的复选框绑定到 EmployeeChk 属性 - @Html.CheckBoxFor(m =&gt; m.EmployeeChk)(并将脚本更改为 $('#EmployeeChk').change(..
  • 不是那么直接,我这里有演示dotnetfiddle.net/wVtwgW我的问题请看一下
  • 您的模型甚至没有 bool EmployeeChk 的属性,所以不确定您在这里真正问的是什么。而且由于您只有一个模型 (Person) 回发到相同的控制器方法,所以我不明白您在这里要做什么
  • 你为什么还要使用复选框 - 你应该使用单选按钮并摆脱脚本 - 根本没有必要
  • 我试图模仿我遇到的问题,如果你想看看我在这里发布的内容

标签: jquery asp.net-mvc checkbox


【解决方案1】:

你有两个选择:

1:当帖子无效时,将选中的复选框保存在模型(变量)中,并将该模型发送到View。在页面加载中,检查模型是否选择了复选框(来自上一篇文章),如果是,请更新您的视图。这种方法使用起来既困难又烦人。

2: 使用 ajax 帖子而不是普通帖子。通过ajax发送您的表单,如果发布不成功,只需向用户显示错误信息(整个页面保持不变)。如果发布成功,则重定向到所需的 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2015-05-19
    相关资源
    最近更新 更多