如果用户输入与指定条件不匹配,则禁用Ajax.BeginForm

时间:2017-09-12 19:14:10

标签: javascript html ajax asp.net-mvc asp.net-mvc-4

客户端:

@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 });
}

如果用户输入与指定条件不匹配,是否可以不提交数据到服务器?如果是,那怎么样?

1 个答案:

答案 0 :(得分:0)

我建议使用jquery验证(https://jqueryvalidation.org/documentation/)。这适用于客户端(浏览器)端。因为Ajax.BeginForm在服务器端运行,所以无法在服务器端禁用它,但是您可以使用以下内容隐藏“AddClusion”的DOM元素:

document.getElementById('AddClusion').style.display = "none";