对于机器校准,我有一个包含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。