0

我在模态弹出窗口的 Ajax 表单中有一个带有字段和复选框的表单,当用户在文本框中输入数据并按下提交时,会发布值并关闭模态。但是,如果用户在文本框中输入一个值,然后选中表单将提交的复选框,并且如果选中该复选框,此时视图将返回到模态我需要离开表单以便用户可以提交另一个条目. 问题是文本框保持其状态,这是我想要的,复选框也是如此,但是,即使复选框仍处于选中状态,复选框的基础值也会切换回 false ......
有点难过。

@using (Ajax.BeginForm("SaveValues", "ControllerName", new AjaxOptions()
{   HttpMethod = "Post",
OnComplete = "ChkForCheckBox();"
}))
{ 
@Html.TextBoxFor(x => x.DDate)
@Html.CheckBoxFor(x => x.Dupe)
<button type="submit" >Save</button>
}

并在控制器中。

public void SaveValues( string DDate, bool Dupe)
{
   var rslt = repo.Post(DDate);
}

JS。

 function ChkForCheckBox(){
    var rslt = $('#Dupe').prop('checked');
    if(!rslt){
     //Close Modal
}
}

然而在 Ajax Post 之后 CheckBox 仍然被选中,但是 JS Script Check 显示为假?如果我注释掉 CloseModal 并查看代码,值是否设置为 False?但如果我再次发布它是真的吗?再次验证 ChkForCheckBox() 并显示错误.....
我遗漏了一些东西。

4

1 回答 1

0

您的检查显示为 false,因为CheckBoxFor()HTML 帮助程序还生成隐藏输入。这样即使未选中复选框,仍会发布该值。您的检查必须只是找到隐藏的输入值而不是复选框的值。

于 2016-11-30T14:48:28.093 回答