2013-08-16 55 views
0

我正在使用一些腳本來處理我的selects。這個腳本是:jquery.selectbox-0.2自定義字段上的jQuery表單驗證器

我的結構是:

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

但有了這個插件,這個標記接收顯示:無,而另一個「分區」出現,取代這一點,我的「選擇框」 出現這樣:

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

我使用jQuery,驗證:

$("#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; 
    }   
}); 

所以我的問題是:如何在此選擇中應用驗證?

+0

您使用自己的驗證或使用我使用jQuery.validator任何驗證frameworls –

+0

,對不起,我忘了... mension – Preston

回答

0

默認情況下,jQuery驗證忽略所有隱藏的輸入元素。

要使用jQuery Validate插件驗證隱藏元素,您必須將ignore選項設置爲[],該選項禁用此默認行爲。

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

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

+0

赫姆..我會嘗試!.. 謝謝! – Preston