0

I'm using some script to work with my selects. This script is: jquery.selectbox-0.2

My structure is:

<select name="dpto_contato" id="dpto_contato" tabindex="1">
    <option value="">Selecione o Departamento</option>
    <option value="Administração">Administração</option>
    <option value="Financeiro">Financeiro</option>
    <option value="Vendas">Vendas</option>
</select>

But with this plugin, this markup receives display:none, and another "div" appears, replacing this, and my "select box" appears that way:

<div id="sbHolder_36001521" class="sbHolder" tabindex="1">
    <a id="sbToggle_36001521" class="sbToggle" href="#"></a>
    <a id="sbSelector_36001521" class="sbSelector" href="#">Selecione o Departamento</a>
    <ul id="sbOptions_36001521" class="sbOptions" style="display: none;">
        <li>
            <a class="sbFocus" href="#" rel="">Selecione o Departamento</a>
        </li>
        <li>
            <a href="#Administração" rel="Administração">Administração</a>
        </li>
        <li>
            <a href="#Financeiro" rel="Financeiro">Financeiro</a>
        </li>
        <li>
            <a href="#Vendas" rel="Vendas">Vendas</a>
        </li>
    </ul>
</div>

I'm Using jQuery, Validator:

$("#form_contato").validate({
    rules: {  
        dpto_contato: { required: true },
        nome: { required: true, minlength: 2 }, 
        email: { required: true, email: true },
        telefone: { required: true },
        assunto: { required: true },
        mensagem: { required: true }
    },  
    messages: {
        dpto_contato: { required: 'Selecione o Departamento'},
        nome: {  required: 'Informe o seu nome', minlength: 'No mínimo 2 letras' }, 
        email: { required: 'Informe o seu Email', email: 'Informe um Email válido' },
        telefone: { required: 'Informe seu Telefone'},
        assunto: { required: 'Informe o Assunto'},
        mensagem: { required: 'Escreba sua Mensagem'},

    }, 

    showErrors: function(errorMap, errorList) {
        $("#form_contato").find("input").each(function() {
            $(this).removeClass("error");
        });
        $("#myErrorContainer").html("");
        if(errorList.length) {
            $("#myErrorContainer").html(errorList[0]['message']);
            $(errorList[0]['element']).addClass("error");
        }
    },
    submitHandler: function( form ){
        $("#myErrorContainer").hide();
        $("#enviando").show();
        var dados = $( form ).serialize();  
        $.ajax({  
            type: "POST",  
            url: "PAGINADEENVIO.PHP",
            data: dados,  
            success: function( data )  
            {  
                alert('Email enviado com sucesso!. Em breve entraremos em contato');
                $("#form_contato")[0].reset();
                $("#enviando").hide();

            }  
        });  

        return false;  
    }           
});

So my question is: How to apply validation in this select?

4

1 回答 1

0

默认情况下,jQuery Validate 忽略所有隐藏的输入元素。

要使用 jQuery Validate 插件验证隐藏元素,您必须设置禁用此默认行为的ignore选项。[]

$("#form_contato").validate({
    ignore: [],
    rules: {
        ...

另见: https ://stackoverflow.com/a/8565769/594235

于 2013-08-16T01:18:42.333 回答