Ir ao conteúdo
  • Cadastre-se

Exercicio javscript


Posts recomendados

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>

 

Link para o comentário
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?

Link para o comentário
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>

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...