客户端:
@using (Ajax.BeginForm("AddClusion", clusionOptions))
{
@Html.TextArea("clusionValue", new { onkeyup = "SyncContents(); return false;" })
<input type="submit" value="Add" onclick="ValidateInput(); ClearDirtyFlag(['clusionValue']);" />
}
<script>
function ValidateInput()
{
if (@Html.Raw(Json.Encode(Model.Name)) === "CheckII" &&
$("#clusionType").val() !== "EcuMnemonic" &&
$("#clusionValue").val().length > 10)
{
//do not submit data to the server.
}
}
</script>
服务器端:
[Transactional]
public JsonResult AddClusion(Guid id, ClusionType clusionType, string clusionValue, bool isInclusion)
{
var product = NonDiagnosticRepository.Product(id);
product.AddClusion(new ProductClusion { Type = clusionType, Value = clusionValue, IsInclusion = isInclusion, ProductId = id });
return Json(new { success = true });
}
如果用户输入与指定条件不匹配,是否可以不提交数据到服务器?如果是,那怎么样?
答案 0 :(得分:0)
我建议使用jquery验证(https://jqueryvalidation.org/documentation/)。这适用于客户端(浏览器)端。因为Ajax.BeginForm在服务器端运行,所以无法在服务器端禁用它,但是您可以使用以下内容隐藏“AddClusion”的DOM元素:
document.getElementById('AddClusion').style.display = "none";