2017-06-02 5 views
1

2つの選択肢(TipoVinculoおよびCboId)が生成されています.TipoVinculoの選択されたオプションが " Estagiario "と呼ばれる。ASP.NET MVC 5:別の選択の選択したオプションに基づいて選択を行う必要があります

プラス:

ビュー

 <div class="form-group"> 
      @Html.LabelFor(model => model.TipoVinculo, htmlAttributes: new { @class = "required control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EnumDropDownListFor(model => model.TipoVinculo, "-- Selecione --", new { @class = "form-control" }) 
       @Html.ValidationMessageFor(model => model.TipoVinculo, "", new { @class = "text-danger" }) 
      </div> 
     </div> 
     <div class="form-group"> 
      @Html.LabelFor(model => model.CboId, htmlAttributes: new { @class = "required control-label col-md-2" }) 
      <div class="col-md-10"> 
       <select id="CboId" name="CboId" class="form-control"></select> 
       @Html.ValidationMessageFor(model => model.CboId, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

のViewModel

TipoVinculoで選択したオプションは、 "Estagiario" を選択CboIdは以下

コードを消えるはずである場合生成された

[Display(Name = "Tipo de Vínculo")] 
    [Required(ErrorMessage = "O {0} é obrigatório")] 
    public TipoVinculo? TipoVinculo { get; set; } 
    [Display(Name = "Classificação Brasileira de Ocupação")] 
    public string CboId { get; set; } 

HTML

<div class="form-group"> 
    <label class="required control-label col-md-2" for="TipoVinculo">Tipo de Vínculo</label> 
    <div class="col-md-10"> 
     <select class="form-control" data-val="true" data-val-required="O Tipo de Vínculo é obrigatório" id="TipoVinculo" name="TipoVinculo"> 
      <option selected="selected" value="">-- Selecione --</option> 
      <option value="1">Contratado</option> 
      <option value="2">Estatutario</option> 
      <option value="3">Comissionado</option> 
      <option value="4">Estagiario</option> 
     </select> 
     <span class="field-validation-valid text-danger" data-valmsg-for="TipoVinculo" data-valmsg-replace="true"></span> 
    </div> 
</div> 


<div class="form-group"> 
    <label class="required control-label col-md-2" for="CboId">Classificação Brasileira de Ocupação</label> 
    <div class="col-md-10"> 
     <select id="CboId" name="CboId" class="form-control"> 
      <option value="">-- Selecione --</option> 
      <option value="1">...</option> 
      <option value="2">...</option> 
      ... 
     </select> 
     <span class="field-validation-valid text-danger" data-valmsg-for="CboId" data-valmsg-replace="true"></span> 
    </div> 
</div> 

私はjQueryの検証を使用してみましたが、私は

$('#frm-add-sol').validate({ 
    rules: { 
     CboId: { 
      depends: function (element) { 
       return $("#TipoVinculo").val() != "4"; 
      } 
     } 
    }, 
    messages: { 
     CboId: "Classificação Brasileira de Ocupação é obrigatorio" 
    } 
}); 

答えて

0

を成功しませんでしたあなたは、この方法を試すことができます。

if ($('#TipoVinculo option:selected').val() == 'Estagiario') { 
     // Apply Required Validation 
     $('[name="CboId"]').rules('add', { 
      required: true, messages: { 
       required: "Cbo is required." 
      } 
     }); 
    } 
    else { 
     // Remove Required Validation 
     $('input[name="SubBranchId"]').rules('remove', 'required'); 
    } 

あなたが書く必要があります上記のコードはドロップダウンで"TipoVinculo"に変更t。

関連する問題