Condição para habilitar ou desabilitar botao

917 views
Skip to first unread message

Flávio Araújo

unread,
Oct 21, 2011, 2:51:51 PM10/21/11
to jQuery (Brasil)
Pessoal, boa tarde.

Tenho um form dinamico, que ao selecionar um valor ja vai filtrando e exibindo os demais, para que quando o usuário clique no pesquisar ja esteja refinada a busca. Até ai ta ok.

No entanto, o que eu quero é que, se um determinado select tiver uma só opção (que no meu caso isso significa que não ha nenhum resultado de acordo com aquela pesquisa), ele desabilite o botão de pesquisar e informe que não ha resultado compative, o que pode ser um texto numa div, etc.

Mas como esse campo muda dinamicamente, to penando aqui para fazer a coisa funcionar.

Testei com isso e funcionou para pegar o tamanho do select , mas ele conta no load da pagina, ou seja, vai ser sempre 0 ou 1. No meu caso quando tem um unico elemento, é que retornou zero, so com um unico option que é default.


        <script type="text/javascript">
        if ($('#valor').length <= 1){//
            alert('sem resultado')
            }else{
                alert('tem resultado)
                }
        </script>

Alguma dica?

Flávio

Felipe Duardo

unread,
Oct 21, 2011, 3:03:55 PM10/21/11
to jque...@googlegroups.com
http://api.jquery.com/live/ no onchange do select?! sera que é isso que voce precisa...




--
Felipe Duardo

Flávio Araújo

unread,
Oct 21, 2011, 3:35:45 PM10/21/11
to jque...@googlegroups.com
Opa,

Testei com a seguinte condição:

           
<script type="text/javascript">
    $("#faixavalor").change(function (){
        if ($('#faixavalor').length < 1){
        $('#pesquisar').attr('disabled',true);
        }   
    })
    .trigger('change');
    </script>

Mas não rolou também não :(

Lucas Amaral

unread,
Oct 21, 2011, 3:53:48 PM10/21/11
to jque...@googlegroups.com
E se vc colocar o evento no elemento que atualiza o select? Por exemplo: o select é atualizado de acordo com o valor de um elemento #valor:

<script type="text/javascript">
    $("#valor").change(function (){

Flávio Araújo

unread,
Oct 21, 2011, 4:42:32 PM10/21/11
to jque...@googlegroups.com
Oi Lucas, também não funcionou ...

Apenas para testar, num select anterior que sempre mudará ou será atualizado, eu testei isso:

<script type="text/javascript">
    $("#regiao").change(function (){
        alert($('#faixavalor'));//so para sair qualquer coisa

    })
    .trigger('change');
    </script>

Mas isso so ocorre no load.

Eu coloquei um link de exemplo basico do que estou fazendo, para vocês entenderem: http://focoimoveis.com.br/teste/corretor/index.htm

[]´s

--

Flávio Araújo

unread,
Oct 24, 2011, 9:24:16 AM10/24/11
to jque...@googlegroups.com
Olá Pessoal,

Andei pesquisando mais um pouco e testei algo que creio que esteja próximo da solução, mas ainda nao funciona, pois ele esta guardando sempre "Valor Indiferente" na string:

<script type="text/javascript">
    $("#faixavalor").live('change',function(){
        $("#faixavalor option").each(function(){
            if($(this).text() == "Valor Indiferente"){
            alert($(this).text());
            //$('#pesquisar').attr('disabled',true);
            return false;
            }
        });

    })
    .trigger('change');
    </script>


Alguma idéia?

[]´s

Flávio Araújo

Lucas Campelo

unread,
Oct 24, 2011, 8:17:23 PM10/24/11
to jQuery (Brasil)
Flávio, pelo que eu entendi, o teu usuário entra no site e vai
escolhendo as opções nos selects. Estes, vão sendo filtrandos no
estilo combobox até um resultado mais "refinado", como você bem disse.
Mas ao escolher uma busca que terá um único resultado, o botão Submit
deve ser desabilitado, correto ?

Se sim,

a única forma que eu penso, em resolver este problema, seria fazer uma
pesquisa ajax antes depois que o cara selecionar algum select, para
que no resultado da pesquisa ajax, retorne quantos resultados terá na
pesquisa que ele fará ao clicar no Submit. Se for menor ou igual a 1,
o botão submit deve ser desabilitado.

Se não, explique melhor por favor.

Flávio Araújo

unread,
Oct 25, 2011, 9:46:43 AM10/25/11
to jque...@googlegroups.com
Olá Lucas,

Obrigado pela resposta. Acabei me virando creio que da forma mais simples possivel, e creio que parecida com o que disse.

Como tenho no XML que leio o valor de intens encontrados, então fiz:

            if (totalResultado > 0) {
                criaTabela(request);
            }else{
                $('#divPesquisa').html("<h2>Não há nenhum resultado com esta combinação. Tente novamente.</h2>");
                }

Ao menos assim eu tenho uma resposta ao usuário.

Obrigado a todos.

Flávio Araújo
http://flaviowd.wordpress.com
http://twitter.com/flaviowd
http://www.meadiciona.com/flaviowd


Reply all
Reply to author
Forward
0 new messages