How to validate drop-down with jquery-validation

0

I'm trying to validate a drop-down list with jquery-validation and I could not, I took an example and tried to adapt my need, I did this:

The form that triggers validation:

<form class="form-horizontal" id="frmFaseObrigatoria" action="" method="post">

Excerpt that should perform validation:

    $(document).ready(function() {              
    $("#frmFaseObrigatoria").validate({
        rules: {
            IdTipoFase1: {
                required: true,
            },          
            iOrdem: {
                required: true,
            },
        },
        highlight: function(element) {
            $(element).closest('.form-group').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('.form-group').removeClass('has-error');
        },
        errorElement: 'span',
        errorClass: 'help-block',
        errorPlacement: function(error, element) {
            if (element.parent('.input-group').length) {
                error.insertAfter(element.parent());
            } else {
                error.insertAfter(element);
            }
        },

        // FUNÇÃO ENVIADA APÓS VALIDAÇÃO
        submitHandler: function(form) {
            DlgInserirFaseObrigatoria();            
        }
    });
});

What I tried to do:

rules: {
IdTipoFase1: { 
    valueNotEquals: 0 
},
IdTipoFase1: { 
    valueNotEquals: "Informe um valor" 
},

The value of my drop-down can not be zero

    
asked by anonymous 24.08.2015 / 13:52

2 answers

1

You can do this as follows

Form:

<form id="form" action "" method="post">
    <select name="combo">
        <option value="">0</option><!-- Criado primeira opção com valor vazio -->
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>

    <input type="submit" value="enviar" />
</form>

Javascript

$(document).ready(function () {

$("#form").validate({
   rules: {
     // regra é feita pelo name do campo
     combo: "required"           
   }
   //aqui você coloca suas outras chamadas conforme a cima
 });

$("#form").submit(function() {
    //aqui uso função $form.valid() para verificar se o formulario é valido antes do submit, ou se você submitar direto também funciona! ele vai parar na validação
    if($("#form").valid()){
        //sua ação de submit
        alert("submit o form");        
    }

});

})

and here is the jsfiddle url working: jsfiddle

    
24.08.2015 / 14:08
0

I even tried to accept the response from @Brunno, I ended up finding another solution to the problem I had and would like to post just to stay as a tip to someone who might be interested, following the tip of that site Form validation with jQuery I did this:

    // VALIDAÇÃO DOS CAMPOS DO FORMULÁRIO - FASE OBRIGATÓRIA
$(document).ready(function() {         

    // ADICIONEI O addMethod A VALIDAÇÃO
    jQuery.validator.addMethod (
      "notEqualTo",
      function(elementValue,element,param) {
        return elementValue != param;
      },
      "Selecione uma opção na lista"
    );  

    $("#frmFaseObrigatoria").validate({
        rules: {
            IdTipoFase1: {
                required: true,
                // INSERI ESSA REGRA NA VALIDAÇÃO
                notEqualTo: 0
            },          
            iOrdem: {
                required: true,
                // INSERI ESSA REGRA NA VALIDAÇÃO
                notEqualTo: 0
            },
        },
        highlight: function(element) {
            $(element).closest('.form-group').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('.form-group').removeClass('has-error');
        },
        errorElement: 'span',
        errorClass: 'help-block',
        errorPlacement: function(error, element) {
            if (element.parent('.input-group').length) {
                error.insertAfter(element.parent());
            } else {
                error.insertAfter(element);
            }
        },

        // FUNÇÃO ENVIADA APÓS VALIDAÇÃO
        submitHandler: function(form) {
            DlgInserirFaseObrigatoria();            
        }
    });
});
    
26.08.2015 / 15:11