none
Problemas com accordion do jquery - não consigo pegar valores com ele fechado RRS feed

  • Pergunta

  • Tenho o código abaixo que gera quantidade de quartos nos meus selects.

         str += '<select class="select-group" id="selQuartos">';
         str += '<option>Qtd. quartos</option>';
        
         for (var i = 1; i < $("#Quartos").val() + 1; i++) {
        
             if (i == 1) str += '<option>' + i + ' quarto</option>';
             else str += '<option>' + i + ' quartos</option>';
        
             if (i == $("#Quartos").val()) break;
         }
        
         str += '</select>';

    Tenho essa função javascript que valida se há checkboxes checados ou não. Gostaria de acrescentar nessa validação, se há quartos selecionados nos meus combos acima,  mas não estou conseguindo fazer. Checkboxes pegamos os valores checados e pronto. Agora como fazer com Combos? Tentei assim: `if($("selQuartos").val() < 1)`... Isso não funcionou, porque não consigo trazer o valor do Seletor(Combobox). Abaixo javascript para validar:

         function Submit() {
             var Apartmento = [];
             var retorno = false;
             for (var i = 0; i < filtroPesquisa.chkApartmento.length; i++) {
                 if (filtroPesquisa.chkApartmento[i].checked) {
                     Apartmento.push(filtroPesquisa.chkApartmento[i].value);
                 }
             }
             if (Apartmento.length == 0) {
                 for (var i = 0; i < filtroPesquisa.chkApartmento.length; i++) {
                     filtroPesquisa.chkApartmento[i].style.color = "red";;
                 }
                 retorno = false;
             } else {
                 retorno = true;
             }

    Então, colmecei a fazer como o FS.DEV postou. Se eu comento o for e dou return false, não vai para outra página, mas se deixo o for mesmo com return false, ele vai para outra página. Como ele chama outra página, não consigo pegar se há ou não erro de javascript. Veja como eu estou fazendo. Coloquei o return false apenas para testes.

        function Submit() {
        
            var _selSeguro = document.getElementById('selSeguro');
            var _selIngresso = document.getElementById('selIngresso');
            var _selPasseio = document.getElementById('selPasseio');
        
            var selecionados = new Array();
            for(var i = 0; i <_selIngresso.length; i++)
                if(_selIngresso[i].selected)
                    selecionados.push({'id':i,'valor':_selIngresso.value});
        
                
                return false;
        
            }
    Observei algo importante aqui. Quando a página entra, vem os sliders fechados. Quando eu abro um slider é que me apresenta os botões e combos para preencher. Com os sliders abertos, o botão para navegar a outra página obedece ao return da função. Isso só não acontece quando os sliders estão fechados. Alguém sabe o porque?

    Fiz dessa form e não deu certo.
     

        if ((_selIngresso.value == '') && (_selPasseio.value == '') && (_selSeguro.value == ''))
                return false;
    Se eu fizer uma a uma, dá certo, mas todas não dão, porque quando abro um slider, os denais se fecham e essa validação só acontece quando os sliders estão abertos. Alguém tem alguma idéia de como fazer isso?

    Eu falei slider, mas agora vi que se chama ACCORDION os efeitos, ou seja, quando um abre o outro se fecha. Quando está fechado é que não consigo mais pegar nada nele, nada mesmo. Aí dá erro de javascript e o botão chama a página.   
    • Editado pnet quarta-feira, 16 de abril de 2014 20:20
    quarta-feira, 16 de abril de 2014 20:19