客户端验证.防止张贴表格

本文关键字:张贴 表格 验证 客户端 | 更新日期: 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"应该会打破它