我有一个带有字段的表单和一个模态弹出窗口上的Ajax表单中的复选框,当用户在文本框中输入数据并按下提交时,将发布值并关闭模态。但是,如果用户在文本框中输入一个值,然后选中该复选框,表单将提交,如果选中该复选框,则视图将返回此时的模态我需要保留表单,以便用户可以提交另一个条目。问题是文本框保持其状态,这就是我想要的状态,复选框也是如此,但是,即使仍然选中了复选框,复选框的基础值也会切换回假... 有点难过。
@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显示为false?如果我注释掉CloseModal并查看代码,则Value设置为False?但如果我再次发布它真的来了吗?
再次验证ChkForCheckBox()并显示错误.....
我错过了一些东西。
答案 0 :(得分:0)
您的检查显示为false,因为CheckBoxFor()
HTML帮助程序也会生成隐藏的输入。即使没有选中复选框,仍然会发布该值。您的检查必须只是找到隐藏的输入值而不是复选框的值。