Mostrar e ocultar componentes HTML

JavaScript - ocultar e mostrar

Vamos ver uma maneira de mostrar e ocultar componentes de paginas em HTML com o uso de JavaScript.

Vamos usar o seguinte caso de estudo:

Um check-list de avarias que só deve ser marcado quando avariado e deve conter uma descrição da avaria.

Para facilitar agilizar o desenvolvimento e tornar nossa pagina responsiva vamos usar o Framework JQuery Mobile:

<head>
	<title>Checklist</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
	<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
	<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>

Agora vamos montar a seguinte estrutura, um check-box para cada item do check-list, e quando selecionado apresenta um campo text para incluir a observação.

<label for="parabrisaEnt">Para Brisa</label>
<input type="checkbox" name="parabrisaEnt" id="parabrisaEnt" value="yes" >
<input type="text" name="parabrisaEntTxt" id="parabrisaEntTxt" style="text-transform:uppercase" placeholder="Descreva o defeito"/>

html-mostra-oculta-componente-01

Agora faremos com que os campos text iniciem ocultos inserindo o comando CSS display:none

<input type="text" name="parabrisaEntTxt" id="parabrisaEntTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>

E a chamada da função em JavaScript ao marcar no check-box

<input type="checkbox" name="parabrisaEnt" id="parabrisaEnt" value="yes" onclick="Mudarestado('parabrisaEntTxt')">

Agora para finalizar vamos controlar o display dos componentes com JavaScript passando o id do componente a ser alterado:

function Mudarestado(el) {
	var display = document.getElementById(el).style.display;
	if(display == "none")
		document.getElementById(el).style.display = 'block';
	else
		document.getElementById(el).style.display = 'none';
}

Veja como fica o resultado:

html-mostra-oculta-componente-02

Agora segue o código completo:

<!DOCTYPE html> 
<html>
<head>
	<title>Checklist</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
	<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
	<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>

<body>
	<div data-role="main"  data-dialog="true" class="ui-content">
		<fieldset data-role="controlgroup">
			<legend>Check-list de avarias: (Marcar quando avariado/faltando)</legend>
			
			<label for="Cabine">Cabine</label>
			<input type="checkbox" name="Cabine" id="Cabine" value="yes" onclick="Mudarestado('CabineTxt')" >
			<input type="text" name="CabineTxt" id="CabineTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>

			<label for="parabrisaEnt">Para Brisa</label>
			<input type="checkbox" name="parabrisaEnt" id="parabrisaEnt" value="yes" onclick="Mudarestado('parabrisaEntTxt')">
			<input type="text" name="parabrisaEntTxt" id="parabrisaEntTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>
			
			<label for="capasEnt">Capas Retrovisores</label>
			<input type="checkbox" name="capasEnt" id="capasEnt" value="yes" onclick="Mudarestado('capasEntTxt')">
			<input type="text" name="capasEntTxt" id="capasEntTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>
			
			<label for="retrovisoresEnt">Retrovisores</label>
			<input type="checkbox" name="retrovisoresEnt" id="retrovisoresEnt" value="yes" onclick="Mudarestado('retrovisoresEntTxt')">
			<input type="text" name="retrovisoresEntTxt" id="retrovisoresEntTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>
			
			<label for="faroisEnt">Faróis</label>
			<input type="checkbox" name="faroisEnt" id="faroisEnt" value="yes" onclick="Mudarestado('faroisEntTxt')">
			<input type="text" name="faroisEntTxt" id="faroisEntTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>
			
			<label for="progManutEnt">Programa Manutenção</label>
			<input type="checkbox" name="progManutEnt" id="progManutEnt" value="yes" onclick="Mudarestado('progManutEntTxt')">	  
			<input type="text" name="progManutEntTxt" id="progManutEntTxt" style="display:none;text-transform:uppercase" placeholder="Descreva o defeito"/>
		</fieldset>
		
		<script>
			function Mudarestado(el) {
				var display = document.getElementById(el).style.display;
				if(display == "none")
					document.getElementById(el).style.display = 'block';
				else
					document.getElementById(el).style.display = 'none';
			}	
		</script>
	</div>	
</body>
</html>

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.