2017-06-02 131 views
1

我有2个选择生成(TipoVinculo和CboId),并且我需要选择CboId,如果TipoVinculo的选定选项不是“ Estagiario”。ASP.NET MVC 5:根据另一个选择的选定选项进行选择

加: 如果TipoVinculo选择的选项是 “Estagiario” 选择CboId应该消失下面

代码:

查看

 <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> 

视图模型

[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"甚至更​​改吨。

相关问题