客户端验证.防止张贴表格
本文关键字:张贴 表格 验证 客户端 | 更新日期: 2023-09-27 18:11:40
我的表单中有一些文本框。不引人注目的jquery验证工作,并使框的红色框,当输入无效的值。但是,当我单击提交表单时,表单将被发送回服务器。为什么?
是因为文本框不是在视图顶部声明的模型吗?
我怎样才能阻止发送表单?
@model Dictionary<Project, List<ProjectActualCapacity>>
@{
var model = Model.ToList();
}
@using (Html.BeginForm("ProjectActualCapacityIndex", "Project", FormMethod.Post))
{
<hr />
@Html.ValidationSummary(true)
@for (int i = 0; i < model.Count(); i++)
{
<tr>
<td>
@Html.DisplayFor(r => model[i].Key.Name)
</td>
@for (int j = 0; j < 12; j++)
{
{
<td>
@Html.TextBoxFor(r => model[i].Value[j].Hours, new { @class = "form-control input-sm text-right" })
@Html.HiddenFor(r => model[i].Value[j].ID)
</td>
}
@Html.HiddenFor(r => model[i].Key.ID)
}
</tr>
}
<input type="submit" value="Set Values" class="btn btn-default" />
}
确保你的web中有CliventValidationEnabled和UnobstrusiveJavaScriptEnabled。
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
<form action="..." onsubmit="return validateForm()" method="...">
...
<input type="submit" value="Submit">
</form>
您可以在表单中尝试上面的代码。validateForm方法必须返回true,表单才会提交,如果它返回false,表单就不会提交。
添加
onclientclick="return false;"
按钮应该停止张贴(总是,你需要在这里添加你的逻辑,使可选)与
usesubmitbehaviour="false"
选项。而且enablevalidation="false"应该会打破它