Ir ao conteúdo
  • Cadastre-se
Diego TJS

Exercicio javscript

Recommended Posts

Estou lendo um livro (Programação Web com PHP 5) apesar de ser PHP fala sobre as demais linguagens web e no fim de cada capitulo tem 3 exercícios estou no JS e travei no exercício que diz o seguinte:

 

1) Altere o formulário da lista 6 (exemplo-4_06.html) e inclua o campo idade. Esse campo deve permitir somente valores entre 18 e 49 anos. Faça a rotina para verificação do valor digitado e inclua tanto na validação do campo quanto no envio do formulário.

 

Estou mandando o código as partes comentadas foi o que tentei fazer mas não deu certo, e no próprio código do livro a opção de sexo está com erro mesmo não selecionando nenhum ele aceita tentei consertar também mas não deu certo, quem poder da uma ajuda agradeço.

<html>
	<head>
		<title>Programacao WEB - PHP</title>
	</head>
	<script>
		function validanome() {
			var n = document.getElementById('nome');
			if(n.value.length<5) {
				alert("Nome deve ter pelo menos 5 caracteres");
				n.value='';
				n.focus();
				return false;
			}
			return true;
		}
		
		function validasexo() {
			var e = document.getElementByName('sexo');
			var p = '';
			for (var i=0; i<e.length; i++) {
					if (e[i].checked===true) {
							p = e[i].value;
							break;
					}
			}
			if (p=='') {
					alert('Favor selecionar o sexo');
					e.focus();
					return false;
			}
			return true;
		}
		
		/*function validaidade() {
			var i = getElementById('idade');
			if(i.value<18)
				if(.value>48){
				alert("Idade deve ser maior de 18 e menos de 49");
				i.value='';
				i.focus();
				return false;
				}
		}*/
		
		function validaForm() {
			var r, r1;
			r = validanome();
			r1 = validasexo();
			//r2 = validaidade();
			return r&&r1; //r&&r1&&r2;
		}
	</script>
	
	<body>
	<form onsubmit='return validaForm();'>
		<p>Nome: <input id='nome' size=30 value='' onblur='validanome()'></p>
		<p>Sexo: <input type='radio' name='sexo' value='M'>Masculino	<input type='radio' name='sexo' value='F'>Feminino</p>
		<!--<p>Idade: <input id='idade' size=30 value='' onblur='validaidade()'></p>-->
		<p><input type='submit' value=' OK '></p>
	</form>
	</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

 

Tenta assim

 

		function validaidade() {
			var i = document.getElementById('idade');
			if(i.value < 18 || i.value > 48){
				alert("Idade deve ser maior de 18 e menos de 49");
				i.focus();
				i.value = "";
				return false;
			}
		}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também tentei mas não resolveu, ele só faz a verificação do fomulário do nome, idade e sexo a verificação não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei exatamente este código e funcionou normal a idade aqui

<html>
	<head>
		<title>Programacao WEB - PHP</title>
	</head>
	<script>
		function validanome() {
			var n = document.getElementById('nome');
			if(n.value.length<5) {
				alert("Nome deve ter pelo menos 5 caracteres");
				n.value='';
				n.focus();
				return false;
			}
			return true;
		}
		
		function validasexo() {
			var e = document.getElementByName('sexo');
			var p = '';
			for (var i=0; i<e.length; i++) {
					if (e[i].checked===true) {
							p = e[i].value;
							break;
					}
			}
			if (p=='') {
					alert('Favor selecionar o sexo');
					e.focus();
					return false;
			}
			return true;
		}
		
		function validaidade() {
			var i = document.getElementById('idade');
			if(i.value < 18 || i.value > 48){
				alert("Idade deve ser maior de 18 e menos de 49");
				i.focus();
				i.value = "";
				return false;
			}
		}
		
		function validaForm() {
			var r, r1;
			r = validanome();
			r1 = validasexo();
			//r2 = validaidade();
			return r&&r1; //r&&r1&&r2;
		}
	</script>
	
	<body>
	<form onsubmit='return validaForm();'>
		<p>Nome: <input id='nome' size=30 value='' onblur='validanome()'></p>
		<p>Sexo: <input type='radio' name='sexo' value='M'>Masculino	<input type='radio' name='sexo' value='F'>Feminino</p>
		<p>Idade: <input id='idade' size=30 value='' onblur='validaidade()'></p>
		<p><input type='submit' value=' OK '></p>
	</form>
	</body>
</html>

 

Uma duvida, você quer que valide apenas quando for da submit no formulário?

Editado por dif
Retirar o código do spoiler

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, quando der o submit ele faz a validação.

Editado por Diego TJS

Compartilhar este post


Link para o post
Compartilhar em outros sites
<html>
<head>
	<title>Programacao WEB - PHP</title>
</head>
<script>
	function validanome() {
		var n = document.getElementById('nome');
		if(n.value.length<5) {
			alert("Nome deve ter pelo menos 5 caracteres");
			return false;
			n.value='';
			n.focus();
		}
	}

	function validasexo() {
		var e = document.getElementsByName('sexo');
		var p = '';

		for (var i=0; i<e.length; i++) {
			if (e[i].checked===true) {
				p = e[i].value;
				break;
			}
		}
		if(p==''){
			alert('Favor selecionar o sexo');
			return false;
		}
	}

	function validaidade() {
		var i = document.getElementById('idade');
		if(i.value < 18 || i.value > 48){
			alert("Idade deve ser maior de 18 e menos de 49");
			return false;
			i.focus();
			i.value = "";
		}
	}

	function validaForm() {
		if(validanome() == false || validasexo() == false || validaidade() == false){
			return false;
		}
	}
</script>

<body>
	<form onsubmit="return validaForm()">
		<p>Nome: <input id='nome' name="nome" size=30 ></p>
		<p>Sexo: <input type='radio' name='sexo' value='M'>Masculino	<input type='radio' name='sexo' value='F'>Feminino</p>
		<p>Idade: <input id='idade' name="idade" size=30 value=''></p>
		<p><input type='submit' value=' OK' ></p>
	</form>
</body>
</html>

 

Editado por dif
Retirar o código do spoiler
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela ajuda, deu certo e consegui entender a solução. :thumbsup:

Editado por Diego TJS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×