[REMOVIDO]Desabilitando select com JQuery

Bom dia pessoal da Guj…

Estou com um problemas. Passei ontem (sexta-feira) o dia inteiro procurando(procurando mesmo) como resolver, encontrei algumas formas porém não consegui implementar no xhtml…

Seguinte:
Quando o usuário clicar dentro do input (nuUnico) e escreve algo, o select (tipoJustica) tem que ficar como “Selecione”…

Segue o código:

Consegui desabilitar o select quando o input não for vazio, porém, agora não consigo reverter o processo, ou seja, quando o input estiver vazio…

Alguém pode ajudar?

código para desabilitar select:

Mano, se vc for fazer mais de uma linha de codigo faz uma funcao, se nao vc vai colocar html de maneira desnecessaria no codigo gerando mais trafego pro lado do usuario.
Tipo, se vc quiser desabilitar o elemento seja por qualquer condicao:

function delabilitarElemento(elemento){ var Sua_Condicao = true; if(Sua_Condicao){ jQuery(elemento).attr('disabled', 'true');//desabilita o elemento //$(elemento).attr('disabled', 'true');//outra maneira eh substituir a palavra jQuery por cifrao, acho mais elegante }else{ jQuery(elemento).removeAttr('disabled');//habilita o elemento. //$(elemento).removeAttr('disabled');//Com cifrao } }
Depois chama assim:

<?... onkeyup="delabilitarElemento(this)" />
Pelo que sei basta existir o atributo disabled pra o elemento ficar desabilitado, isso independente do valor. Entao vc tem que remover o atributo pra ter o elemento habilitado.

Resolvido:

a função é a sitada acima

Ola Luiz, da uma olhada sobre reuso de codigo.
Mas, resumindo…
Quando disse que vc poderia fazer uma funcao caso fosse usar mais de uma linha de codigo eh valido, mas tambem tem o reuso de codigo.
Vc colocou o ID diretamente dentro da funcao, entao se algum dia vc quiser aplicar a mesma funcao para um outro elemento, vc tera que criar uma nova funcao, repetindo o codigo e apenas alterando o ID.
Do ponto de vista pratico nao teria muita diferenca entre vc colocar diretamente a funcao no atributo do elemento ou simplesmente chama-la pelo mesmo atributo, pois a diferenca na quantidade de codigo gerado seria irrelevante.
Pense em um outro ponto, e se um dia vc quisesse aplicar a dita funcao a digamos 20 elementos? Entao vc faria 20 funcoes?
Uma vez me falaram que nao existe codigo errado, mas codigo que funciona, o codigo esta funcional, mas pode ser otimizado.

//Essa funcao atende a necessidade do momento, mas nao pode ser reaproveitada para outros elementos function ...(){ if(jQuery('input[id*=nuUnico]').val() != ""){ jQuery('select[id*=tipoJustica]').attr("disabled", "true").css("background-color","#e9e9e9"); } else{ jQuery('select[id*=tipoJustica]').removeAttr("disabled", "true").css("background-color","#DDE8FE"); } }

//Passando os elementos por parametro vc pode utiliza-la para qualquer elemento, nao precisaria de uma nova funcao para cada elemento // function ...(elemento1, elemento2){ if(jQuery(elemento1).val() != ""){ jQuery(elemento2).attr("disabled", "true").css("background-color","#e9e9e9"); } else{ jQuery(elemento2).removeAttr("disabled", "true").css("background-color","#DDE8FE"); } }

[code]


  • <h:outputLabel for=“nuUnico” value=“Número Único do Processo” />
    <h:inputText id=“nuUnico” styleClass=“obrigatorio extraGrandeModificado numerico” maxlength=“20” value="#{estoqueContaMB.filtro.nuProcesso}" disabled="#{estoqueContaMB.filtro.booleanProcesso}"
    onkeyup=“javascript:FuncaoComNomeMaisGenerico(this, ‘select[id*=tipoJustica]’);”/>
                                    </li> [/code]