如何防止对选定的提交选项进行客户端表单验证。

时间:2018-11-12 10:21:05

标签: validation asp.net-mvc-5 ajax.beginform

对于机器校准,我有一个包含100多个字段和多个Submit(提交)按钮的大表格,每个按钮都以唯一的状态提交表单,以标识该机器的校准状态。如下图所示

@using (Ajax.BeginForm("PostAssetCalcert", "SiteReport", null, new AjaxOptions { OnBegin="return ValidateForm()", OnSuccess = "ReloadAssetTable()", OnFailure = "ReloadAssetTable()" }))
{
    <input type="submit" name="done" value="Done" class="btn-sm btn-warning" hidden="hidden" />
    <input type="submit" name="save" value="Save for Now" class="btn-sm btn-info" />
    <input type="submit" name="scrap" value="Scrap" class="btn-sm btn-danger" />
    <input type="submit" name="removeAdjustment" value="Remove Adjustment" class="btn-sm btn-danger" />
    ..
    .. Other form fields

通过在ValidateForm() OnBegin属性内调用AjaxOptions {OnBegin = "return ValidateForm()"}方法来触发验证。

我的问题是如何避免某些提交的客户端验证?由于用户选择'Save for Now''Scrap''Remove'时无需进行验证,因此选择'Done'选项应执行验证。

在我的控制器方法中,我只是读取表单变量以获取用户对所选选项的选择,例如:

if (Request.Form["done"] != null){
    // actions for 'Done' status 
}if (Request.Form["scrap"] != null){
    // asctions for 'Scrap' status 
}

是否可以在JS validateForm()内读取Form变量?如果是这样,我可以使用它添加检查以避免进一步的验证并返回true。

0 个答案:

没有答案