2017-09-12 7 views
-1

クライアント側:無効にAjax.BeginFormユーザ入力が指定された条件に一致しない場合

@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

jqueryの検証(https://jqueryvalidation.org/documentation/)の使用をお勧めします。これはクライアント(ブラウザ)側で動作します。 Ajax.BeginFormは、サーバー側で実行されるため、しかし、あなたのようなものを使用して「AddClusion」のためのDOM要素を非表示にすることができ、サーバー側でそれを無効にすることはできません。

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

関連する問題