Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

drigo

[Resolvido] Deixar Botão Visivel e Invisivel usando Jquery.

Recommended Posts

Olaa,

 

 

Sou iniciante em JQuery, estou tentando mostrar e esconder botões, por padrão os botões encontram-se com visible=false e dependendo da condição o botão fica visivel ou não, conforme mostra o código abaixo:

 


    if (controle == "0") {

        $("#<%= btnAtualiza.ClientID %>").show();

        $("#<%= btnCria.ClientID %>").hide();

     }else if (controle == "1") {

        $("#<%= btnAtualiza.ClientID %>").hide();

        $("#<%= btnCria.ClientID %>").show();
 }

 

Mas o botão não fica visivel, ja pesquisei e a propriedade que é usada para deixar o botão como visivel é o show(). Como resolver tal situação, deixando os botões visiveis ??

 

Desde Já, Agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Javascript trabalha com conteúdo processado (client side). As tags passadas são conteúdo pré-processado (server-side). Veja no código-fonte do navegador que o resultado é completamente diferente do que você codifica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado Matias Rezende,

 

 

Antes do if eu somente tenho a resposta de uma requisição Ajax, dependendo dessa resposta é que eu tomo a decisão de ativar e desativar os botões que estão como padrão com o visible = false. Eu não sei como definir a var do controle, você poderia me dar maiores informações a respeito.

 

 

Desde Já, Agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja, o que quero saber é o seguinte:

 

if (controle == "0") {
...
}else if (controle == "1") {

Traduzindo para português:

se a variável controle for igual a "0".

...

Senão, se a variável controle for igual a "1".

 

A sua lógica depende TOTALMENTE do valor da variável controle. Porque você faz este if se você não sabe o que tem na variável controle? Apenas para debug, troque esta parte do código por:

     if (controle == "0") {

        $("#<%= btnAtualiza.ClientID %>").show();
        $("#<%= btnCria.ClientID %>").hide();

     }else if (controle == "1") {

        $("#<%= btnAtualiza.ClientID %>").hide();
        $("#<%= btnCria.ClientID %>").show();
     } else {
        alert(controle);
     }

 

Veja se aparece alguma coisa.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo não entendi direito mais se ajudar eu uso assim quando alguem clica no botão para imprimir espero que ajude!

 

Exemplo:

 

<button type="button" value="imprimir" name="OmeuBT" class="bot100" onclick="OmeuBT.style.display='none';OmeuBT.style.visibility='hidden';window.print()" >Imprimir</button>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@drigo e @Matias Rezende jQuery é uma framework em Javascript. Como tal, só tange marcação processada. Equivalente em PHP, seria como eu tentar acessar

$('<?php echo "<p>Teste</p>"; ?>')

. Isso NUNCA vai acontecer porque quando o Javascript entrar em execução, o código do lado do servidor já terá sido traduzido para HTML puro!

 

Reforço, abra o código-fonte do navegador (o atalho padrão é ctrl+u) e procure o resultado da renderização destes objetos. Provavelmente será um

<button id="">

e assim será possível acessar o elemento com jQuery, Javascript, MooTools ou qualquer outro tipo de ferramenta CLIENT-SIDE.

 

Em tempo: Se o Javascript estiver embarcado na marcação, experimente fazer o caminho contrário, ao invés do ASP escrever apenas o ID, dentro de uma string, faça com que o mesmo escreva TODA a id:

 

<% response.write('$("#' + btnAtualiza.ClientId + '")...'); %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evandro.

 

Discordo do que você colocou. Veja o código dele.

 

$("#<%= btnAtualiza.ClientID %>").show();

Não entendo nada de ASP, mas me parece que este código vai imprimir o código id do cliente, que deve ser o mesmo id que está em algum elemento. Como as linguagens server-side são executadas no servidor, são executadas antes do JS, retornando HTML puro ao navegador, que então renderiza.

Pegando um exemplo em PHP (que é a linguagem que conheço), da seguinte forma.

 

<?php $id = 'teste';?>
<html>
<head>
<title>Página</title>
<script type="text/javascript">
function teste() {
alert(document.getElementById('<?php echo $id?>').value);
}
</script>
</head>
<body>
<input type="text" id="<?php echo $id?>" onchange="teste()">
</body>
</html>

Este código PHP retornará o seguinte HTML:

<html>
<head>
<title>Página</title>
<script type="text/javascript">
function teste() {
alert(document.getElementById('teste').value);
}
</script>
</head>
<body>
<input type="text" id="teste" onchange="teste()">
</body>
</html>

 

Veja que, ao modificar o input, será alertado o valor digitado dentro do campo. Então, acredito que, no problema inicial, o caso seja que não está entrando no if nem no elseif.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daria certo com PHP e JSP por isso mesmo. Com .NET, seja ASP, C#, J#, não. A linguagem é integrada à marcação em formato XML. A expressão se torna uma string. É bem possível que exibindo os fontes, o código puro esteja sendo exibido.

 

Ainda assim devemos priorizar o Server-side separando expressões de Strings e resultados processados. A minha segunda sugestão deve dar algum retorno, ainda que não seja o esperado.

 

Vale lembrar que eu não estava considerando o Javascript embarcado. Que foi a nota que fiz no final do post. Tenho a péssima mania de acreditar que todo mundo codifica separando as camadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daria certo com PHP e JSP por isso mesmo. Com .NET, seja ASP, C#, J#, não. A linguagem é integrada à marcação em formato XML. A expressão se torna uma string. É bem possível que exibindo os fontes, o código puro esteja sendo exibido.

Não sabia disto. Pra mim é novidade.

 

Vale lembrar que eu não estava considerando o Javascript embarcado. Que foi a nota que fiz no final do post. Tenho a péssima mania de acreditar que todo mundo codifica separando as camadas.

Hehehehe... Eu já desisti. :P Faço a minha parte, mas não espero que os outros façam...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por isso pedi que ele postasse os fontes do navegador. Dependendo do problema, é erro de lógica e o tópico seria movido para o fórum de .NET

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido, Obrigado pela atenção de todos.

 

Apenas separei os dois botoes, cada um em uma div. Logo após usei o ...attr('disables',true).

 

 

Novamente Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.