├── LICENSE ├── README.md ├── assets ├── Beep_Short.mp3 ├── Thunder_Crack.mp3 ├── banner1.jpg ├── banner2.jpg ├── banner3.jpg ├── broken.jpg ├── circ_and.png ├── circ_not.png ├── circ_or.png ├── clean.png ├── etanol.png ├── explosion.gif ├── face1.png ├── face2.png ├── face3.png ├── face4.png ├── face5.png ├── face6.png ├── favicon.png ├── gasolina.png ├── glassbreaking.wav ├── imc.png ├── imc1.png ├── imc2.png ├── imc3.png ├── imc4.png ├── imc5.png ├── imc6.png ├── imc7.png ├── logica jokenpo.png ├── neutro.png ├── off.jpg ├── on.jpg ├── papel.png ├── pc.png ├── pcpapel.png ├── pcpedra.png ├── pctesoura.png ├── pedra.png ├── swoff.png ├── swon.png ├── tabeland.png ├── tabelnot.png ├── tabelor.png ├── tesoura.png ├── while-dowhile.jpg └── xm.png ├── aulas ├── appflex │ ├── calcflex.js │ ├── etanol.png │ ├── gasolina.png │ ├── index.html │ └── neutro.png ├── carrossel fade │ ├── img │ │ ├── slide1.jpg │ │ ├── slide2.jpg │ │ └── slide3.jpg │ ├── index.html │ ├── slideShow.js │ └── style.css ├── cartas │ ├── array.js │ └── index.html ├── countdown │ ├── Beep_Short.mp3 │ ├── Thunder_Crack.mp3 │ ├── clean.png │ ├── countdown.js │ ├── explosion.gif │ ├── index.html │ ├── style.css │ └── xm.png ├── dado │ ├── dado.js │ ├── face1.png │ ├── face2.png │ ├── face3.png │ ├── face4.png │ ├── face5.png │ ├── face6.png │ └── index.html ├── helloworld │ └── index.html ├── jokenpo │ ├── estudo else if.js │ ├── index.html │ ├── jokenpo.js │ ├── logica pedra papel tesoura.png │ ├── papel.png │ ├── pc.png │ ├── pcpapel.png │ ├── pcpedra.png │ ├── pctesoura.png │ ├── pedra.png │ └── tesoura.png ├── lampada │ ├── controle.js │ ├── index.html │ ├── off.jpg │ └── on.jpg ├── simplefunction │ ├── hellofunction.js │ └── index.html ├── slide │ ├── banner1.jpg │ ├── banner2.jpg │ ├── banner3.jpg │ ├── index.html │ ├── slide.js │ └── style.css ├── tabuada │ ├── index.html │ └── tabuada.js └── vincularJS │ ├── documento.js │ └── index.html └── material extra ├── exercicios ├── array │ ├── array.js │ └── index.html ├── calculoMedia │ ├── index.html │ └── media.js ├── cartas_v2 │ ├── cartas.js │ ├── img │ │ ├── dama.png │ │ ├── rei.png │ │ └── valete.png │ ├── index.html │ └── style.css ├── conversor │ ├── conversor.js │ └── index.html ├── eleitor │ ├── eleitor.js │ └── index.html ├── funcoes │ ├── hello.js │ └── index.html ├── imc │ ├── imc.js │ ├── imc.png │ ├── imc1.png │ ├── imc2.png │ ├── imc3.png │ ├── imc4.png │ ├── imc5.png │ ├── imc6.png │ ├── imc7.png │ └── index.html ├── pdv │ ├── index.html │ └── pdv.js ├── regra3 │ ├── index.html │ └── regra3.js └── validacao │ ├── index.html │ └── validador.js └── jquery ├── fundamentos.txt ├── helloJQuery ├── estudo.js ├── index.html ├── jquery-3.4.1.min.js └── logoJQ.png ├── siteJQuery ├── efeito.js ├── imagens │ ├── background.jpg │ ├── logo.png │ ├── topo.png │ ├── tux1.png │ ├── tux2.png │ ├── tux3.png │ └── tux4.png ├── index.html ├── jquery-3.4.1.min.js ├── menu.js ├── style.css └── topo.js └── validacaoJQuery ├── index.html ├── jquery-3.4.1.min.js ├── jquery.validate.min.js └── validacao2.js /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Professor José de Assis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![GitHub](https://img.shields.io/github/license/professorjosedeassis/javascript) 2 | 3 | # JavaScript para iniciantes (mini projetos) 4 | Aprenda **JavaScript** de forma prática e divertida desenvolvendo aplicativos, jogos e muito mais. Este curso também ensina Lógica de Programação e é recomendado para iniciantes. 5 | ### Autor 6 | Professor José de Assis 7 | ### Apresentação 8 | [![Curso primeiros passos com JavaScript](https://img.youtube.com/vi/h1FiBei6plo/0.jpg)](https://youtu.be/h1FiBei6plo?si=iCIXcKIXHUdrPJBh "Asssistir no YouTube") 9 | 10 | ![YouTube Video Views](https://img.shields.io/youtube/views/h1FiBei6plo?style=social) 11 | ### Iniciar curso: 12 | ▶️ [Playlist](https://www.youtube.com/playlist?list=PLbEOwbQR9lqyuy7U1YjGgBv0x2Hzuw569) 13 | ### Certificado deste curso: 14 | 🎓 [Iniciar teste](https://docs.google.com/forms/d/e/1FAIpQLSdjlOh0Nlc_eipNCnlJ69xjg1f1OPUvjXPhjDjRz912TlBCiw/viewform) 15 | 16 |
17 | 18 | ### ☕ Projetos sem café? Impossível! 19 | Criar e compartilhar projetos gratuitos exige tempo, dedicação e, claro, muito café! Se quiser apoiar, um "cafezinho" faz toda a diferença.
Sua doação incentiva mais projetos reais e mantém a motivação lá em cima! 20 | #### Chave PIX❖: 21 | ~~~txt 22 | josedeassisfilho@gmail.com 23 | ~~~ 24 | *( em nome de José de Assis Filho )* 25 | 26 | E olha, só de dar uma estrela ⭐, seguir o repositório e compartilhar, você já está dando uma baita força! 27 | 28 | 😃 Valeu demais pelo apoio! 29 | -------------------------------------------------------------------------------- /assets/Beep_Short.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/Beep_Short.mp3 -------------------------------------------------------------------------------- /assets/Thunder_Crack.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/Thunder_Crack.mp3 -------------------------------------------------------------------------------- /assets/banner1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/banner1.jpg -------------------------------------------------------------------------------- /assets/banner2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/banner2.jpg -------------------------------------------------------------------------------- /assets/banner3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/banner3.jpg -------------------------------------------------------------------------------- /assets/broken.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/broken.jpg -------------------------------------------------------------------------------- /assets/circ_and.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/circ_and.png -------------------------------------------------------------------------------- /assets/circ_not.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/circ_not.png -------------------------------------------------------------------------------- /assets/circ_or.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/circ_or.png -------------------------------------------------------------------------------- /assets/clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/clean.png -------------------------------------------------------------------------------- /assets/etanol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/etanol.png -------------------------------------------------------------------------------- /assets/explosion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/explosion.gif -------------------------------------------------------------------------------- /assets/face1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/face1.png -------------------------------------------------------------------------------- /assets/face2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/face2.png -------------------------------------------------------------------------------- /assets/face3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/face3.png -------------------------------------------------------------------------------- /assets/face4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/face4.png -------------------------------------------------------------------------------- /assets/face5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/face5.png -------------------------------------------------------------------------------- /assets/face6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/face6.png -------------------------------------------------------------------------------- /assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/favicon.png -------------------------------------------------------------------------------- /assets/gasolina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/gasolina.png -------------------------------------------------------------------------------- /assets/glassbreaking.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/glassbreaking.wav -------------------------------------------------------------------------------- /assets/imc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc.png -------------------------------------------------------------------------------- /assets/imc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc1.png -------------------------------------------------------------------------------- /assets/imc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc2.png -------------------------------------------------------------------------------- /assets/imc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc3.png -------------------------------------------------------------------------------- /assets/imc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc4.png -------------------------------------------------------------------------------- /assets/imc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc5.png -------------------------------------------------------------------------------- /assets/imc6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc6.png -------------------------------------------------------------------------------- /assets/imc7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/imc7.png -------------------------------------------------------------------------------- /assets/logica jokenpo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/logica jokenpo.png -------------------------------------------------------------------------------- /assets/neutro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/neutro.png -------------------------------------------------------------------------------- /assets/off.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/off.jpg -------------------------------------------------------------------------------- /assets/on.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/on.jpg -------------------------------------------------------------------------------- /assets/papel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/papel.png -------------------------------------------------------------------------------- /assets/pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/pc.png -------------------------------------------------------------------------------- /assets/pcpapel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/pcpapel.png -------------------------------------------------------------------------------- /assets/pcpedra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/pcpedra.png -------------------------------------------------------------------------------- /assets/pctesoura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/pctesoura.png -------------------------------------------------------------------------------- /assets/pedra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/pedra.png -------------------------------------------------------------------------------- /assets/swoff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/swoff.png -------------------------------------------------------------------------------- /assets/swon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/swon.png -------------------------------------------------------------------------------- /assets/tabeland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/tabeland.png -------------------------------------------------------------------------------- /assets/tabelnot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/tabelnot.png -------------------------------------------------------------------------------- /assets/tabelor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/tabelor.png -------------------------------------------------------------------------------- /assets/tesoura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/tesoura.png -------------------------------------------------------------------------------- /assets/while-dowhile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/while-dowhile.jpg -------------------------------------------------------------------------------- /assets/xm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/assets/xm.png -------------------------------------------------------------------------------- /aulas/appflex/calcflex.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula5: Calculadora FLEX 3 | * @author Professor José de Assis 4 | */ 5 | 6 | var etanol,gasolina; 7 | 8 | function calcular(){ 9 | etanol = parseFloat(frmFlex.txtEtanol.value.replace(",",".")); 10 | gasolina = parseFloat(frmFlex.txtGasolina.value.replace(",",".")); 11 | if (etanol < 0.7 * gasolina){ 12 | document.getElementById("status").src="etanol.png"; 13 | }else{ 14 | document.getElementById("status").src="gasolina.png"; 15 | } 16 | } 17 | 18 | function resetar(){ 19 | document.getElementById("status").src="neutro.png"; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /aulas/appflex/etanol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/appflex/etanol.png -------------------------------------------------------------------------------- /aulas/appflex/gasolina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/appflex/gasolina.png -------------------------------------------------------------------------------- /aulas/appflex/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Calculadora Flex 6 | 7 | 8 |

JS - Aula5: Calculadora Flex

9 | Calculadora Flex 10 |
11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /aulas/appflex/neutro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/appflex/neutro.png -------------------------------------------------------------------------------- /aulas/carrossel fade/img/slide1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/carrossel fade/img/slide1.jpg -------------------------------------------------------------------------------- /aulas/carrossel fade/img/slide2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/carrossel fade/img/slide2.jpg -------------------------------------------------------------------------------- /aulas/carrossel fade/img/slide3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/carrossel fade/img/slide3.jpg -------------------------------------------------------------------------------- /aulas/carrossel fade/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Carrossel de imagens 9 | 10 | 11 | 12 | 13 |
14 | slides 15 |
16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /aulas/carrossel fade/slideShow.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Simples carrossel de imagens com efeito fade 3 | * @author Professor José de Assis 4 | */ 5 | 6 | let slides = ["slide1.jpg", "slide2.jpg", "slide3.jpg"] 7 | let intervalo = 3000 8 | let indice = 0 9 | 10 | show() 11 | 12 | function show() { 13 | document.getElementById("slide").className += "FadeOut" 14 | setTimeout(function () { 15 | document.getElementById("slide").src = (`img/${slides[indice]}`) 16 | document.getElementById("slide").className = "" 17 | }, 1000) 18 | indice++ 19 | if (indice === slides.length) { 20 | indice = 0 21 | } 22 | setTimeout(show, intervalo) 23 | } -------------------------------------------------------------------------------- /aulas/carrossel fade/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | .Container { 7 | max-width: 1080px; 8 | margin: 0 auto; 9 | } 10 | 11 | img { 12 | max-width: 100%; 13 | } 14 | 15 | /* Efeito fade */ 16 | 17 | #slide.FadeOut { 18 | opacity: 0.1; 19 | } 20 | 21 | #slide { 22 | transition: opacity 2s; 23 | opacity: 1; 24 | } -------------------------------------------------------------------------------- /aulas/cartas/array.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula14: Jogo de Cartas 3 | * @author José de Assis 4 | */ 5 | 6 | var nipes=['♥','♦','♣','♠']; 7 | var faces=['A','2','3','4','5','6','7','8','9','10','J','Q','K']; 8 | var nipe=nipes[Math.floor(Math.random()*4)]; 9 | var face=faces[Math.floor(Math.random()* faces.length)]; 10 | document.write("

" + face + nipe + "

"); -------------------------------------------------------------------------------- /aulas/cartas/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Jogo de Cartas 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /aulas/countdown/Beep_Short.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/countdown/Beep_Short.mp3 -------------------------------------------------------------------------------- /aulas/countdown/Thunder_Crack.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/countdown/Thunder_Crack.mp3 -------------------------------------------------------------------------------- /aulas/countdown/clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/countdown/clean.png -------------------------------------------------------------------------------- /aulas/countdown/countdown.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula10: Countdown 3 | * @author Professor José de Assis 4 | */ 5 | 6 | var check = false; 7 | 8 | function xequeMate(){ 9 | if (check == false){ 10 | var timer1 = setInterval(function(){start()}, 1000); 11 | var timer2 = setTimeout(function(){end()}, 13200); 12 | var count = 10; 13 | function start(){ 14 | soundBeep(); 15 | document.getElementById("time").innerHTML = count; 16 | if (count == 0){ 17 | clearInterval(timer1); 18 | soundThunder(); 19 | document.getElementById("fire").src = "explosion.gif"; 20 | document.getElementById("time").innerHTML = "GAME OVER"; 21 | } 22 | count --; 23 | } 24 | check = true; 25 | } 26 | } 27 | 28 | function soundThunder(){ 29 | var beep = new Audio(); 30 | beep.src = "Thunder_Crack.mp3"; 31 | beep.play(); 32 | } 33 | 34 | function soundBeep(){ 35 | var beep = new Audio(); 36 | beep.src = "Beep_Short.mp3"; 37 | beep.play(); 38 | } 39 | 40 | function end(){ 41 | document.getElementById("fire").src = "clean.png"; 42 | } 43 | -------------------------------------------------------------------------------- /aulas/countdown/explosion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/countdown/explosion.gif -------------------------------------------------------------------------------- /aulas/countdown/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Countdown 6 | 7 | 8 | 9 | 10 |

Countdown

11 | Countdown 12 | 13 | 14 | -------------------------------------------------------------------------------- /aulas/countdown/style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Orbitron'); 2 | 3 | body{ 4 | font-family: 'Orbitron', sans-serif; 5 | background-color: #07060a; 6 | color: #ff0000; 7 | font-size: 42px; 8 | text-align: center; 9 | } 10 | 11 | #fire{ 12 | cursor: pointer; 13 | } 14 | 15 | img{ 16 | max-width: 100%; 17 | } -------------------------------------------------------------------------------- /aulas/countdown/xm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/countdown/xm.png -------------------------------------------------------------------------------- /aulas/dado/dado.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula6: Jogo do dado 3 | * @author Professor José de Assis 4 | */ 5 | 6 | var sorteio = Math.floor(Math.random() * 6 + 1); 7 | 8 | switch(sorteio){ 9 | case 1: 10 | document.getElementById("face").src = "face1.png"; 11 | break; 12 | case 2: 13 | document.getElementById("face").src = "face2.png"; 14 | break; 15 | case 3: 16 | document.getElementById("face").src = "face3.png"; 17 | break; 18 | case 4: 19 | document.getElementById("face").src = "face4.png"; 20 | break; 21 | case 5: 22 | document.getElementById("face").src = "face5.png"; 23 | break; 24 | case 6: 25 | document.getElementById("face").src = "face6.png"; 26 | break; 27 | default: 28 | //caso contrário 29 | break; 30 | } -------------------------------------------------------------------------------- /aulas/dado/face1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/dado/face1.png -------------------------------------------------------------------------------- /aulas/dado/face2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/dado/face2.png -------------------------------------------------------------------------------- /aulas/dado/face3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/dado/face3.png -------------------------------------------------------------------------------- /aulas/dado/face4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/dado/face4.png -------------------------------------------------------------------------------- /aulas/dado/face5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/dado/face5.png -------------------------------------------------------------------------------- /aulas/dado/face6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/dado/face6.png -------------------------------------------------------------------------------- /aulas/dado/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Jogo do Dado 6 | 7 | 8 |

JS - Aula6: Jogo do dado

9 | dado 10 | 11 | 12 | -------------------------------------------------------------------------------- /aulas/helloworld/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JS - Hello World 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /aulas/jokenpo/estudo else if.js: -------------------------------------------------------------------------------- 1 | if (condição){ 2 | //condição verdadeira 3 | } 4 | 5 | if (condição){ 6 | //condição verdadeira 7 | } else{ 8 | //condição falsa 9 | } 10 | 11 | if (condição 1){ 12 | //condição 1 verdadeira 13 | } else if (condição 2){ 14 | //condição 2 verdadeira 15 | } else if (condição 3){ 16 | //condição 3 verdadeira 17 | } else { 18 | //caso nenhuma condição seja verdadeira 19 | } 20 | -------------------------------------------------------------------------------- /aulas/jokenpo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | jokenpô 6 | 7 | 8 |

JS - Jokenpô

9 |

Jogador:

10 | Pedra 11 | Papel 12 | Tesoura 13 |
14 | Pedra 15 | Papel 16 | Tesoura 17 |

18 | 19 | 20 |

21 |
22 |
23 |

Computador:

24 | PC 25 |
26 |

27 | 28 | 29 | -------------------------------------------------------------------------------- /aulas/jokenpo/jokenpo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula12 Jokenpô 3 | * @author Professor José de Assis 4 | */ 5 | 6 | function jogar(){ 7 | if(document.getElementById("pedra").checked == false && document.getElementById("papel").checked == false && document.getElementById("tesoura").checked == false){ 8 | alert("Selecione uma opção"); 9 | } else{ 10 | //lógica principal 11 | var sorteio = Math.floor(Math.random() * 3); 12 | switch(sorteio){ 13 | case 0: 14 | document.getElementById("pc").src="pcpedra.png"; 15 | break; 16 | case 1: 17 | document.getElementById("pc").src="pcpapel.png"; 18 | break; 19 | case 2: 20 | document.getElementById("pc").src="pctesoura.png"; 21 | break; 22 | } 23 | //verificar o vencedor ou declarar empate 24 | if ((document.getElementById("pedra").checked == true && sorteio == 0) || (document.getElementById("papel").checked == true && sorteio == 1) || (document.getElementById("tesoura").checked == true && sorteio == 2)){ 25 | document.getElementById("placar").innerHTML="Empate"; 26 | } else if ((document.getElementById("pedra").checked == true && sorteio == 2) || (document.getElementById("papel").checked == true && sorteio == 0) || (document.getElementById("tesoura").checked == true && sorteio == 1)){ 27 | document.getElementById("placar").innerHTML="Jogador Venceu"; 28 | } else { 29 | document.getElementById("placar").innerHTML="Computador Venceu"; 30 | } 31 | } 32 | } 33 | 34 | function resetar(){ 35 | document.getElementById("pc").src="pc.png"; 36 | document.getElementById("placar").innerHTML=""; 37 | } -------------------------------------------------------------------------------- /aulas/jokenpo/logica pedra papel tesoura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/logica pedra papel tesoura.png -------------------------------------------------------------------------------- /aulas/jokenpo/papel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/papel.png -------------------------------------------------------------------------------- /aulas/jokenpo/pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/pc.png -------------------------------------------------------------------------------- /aulas/jokenpo/pcpapel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/pcpapel.png -------------------------------------------------------------------------------- /aulas/jokenpo/pcpedra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/pcpedra.png -------------------------------------------------------------------------------- /aulas/jokenpo/pctesoura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/pctesoura.png -------------------------------------------------------------------------------- /aulas/jokenpo/pedra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/pedra.png -------------------------------------------------------------------------------- /aulas/jokenpo/tesoura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/jokenpo/tesoura.png -------------------------------------------------------------------------------- /aulas/lampada/controle.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula8: Lâmpada 3 | * @author Professor José de Assis 4 | */ 5 | 6 | function on(){ 7 | document.getElementById("lamp").src = "on.jpg"; 8 | } 9 | 10 | function off(){ 11 | document.getElementById("lamp").src = "off.jpg"; 12 | } 13 | 14 | function blink(){ 15 | var intervalo = 0; 16 | var contador = 0; 17 | while(contador < 10){ 18 | intervalo += 300; 19 | setTimeout("document.getElementById('lamp').src='on.jpg';",intervalo); 20 | intervalo += 300; 21 | setTimeout("document.getElementById('lamp').src='off.jpg';",intervalo); 22 | contador++; 23 | } 24 | } -------------------------------------------------------------------------------- /aulas/lampada/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Controle de uma lâmpada 6 | 7 | 8 | Lâmpada 9 |
10 | 11 | 12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /aulas/lampada/off.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/lampada/off.jpg -------------------------------------------------------------------------------- /aulas/lampada/on.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/lampada/on.jpg -------------------------------------------------------------------------------- /aulas/simplefunction/hellofunction.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula4: Função simples 3 | * @author Professor José de Assis 4 | */ 5 | 6 | function hello(){ 7 | var nome; 8 | nome = prompt("Qual é o seu nome?"); 9 | alert("Hello " + nome); 10 | } -------------------------------------------------------------------------------- /aulas/simplefunction/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JS - Função Simples 6 | 7 | 8 |

JS - Aula 4: Função simples

9 |
10 | 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /aulas/slide/banner1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/slide/banner1.jpg -------------------------------------------------------------------------------- /aulas/slide/banner2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/slide/banner2.jpg -------------------------------------------------------------------------------- /aulas/slide/banner3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/aulas/slide/banner3.jpg -------------------------------------------------------------------------------- /aulas/slide/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simples Slide Show 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /aulas/slide/slide.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula9: Simples SLIDE SHOW 3 | * @author Professor José de Assis 4 | */ 5 | 6 | var intervalo = 3000; 7 | 8 | function slide1(){ 9 | document.getElementById('banner').src="banner1.jpg"; 10 | setTimeout("slide2()", intervalo) 11 | } 12 | 13 | function slide2(){ 14 | document.getElementById('banner').src="banner2.jpg"; 15 | setTimeout("slide3()", intervalo) 16 | } 17 | 18 | function slide3(){ 19 | document.getElementById('banner').src="banner3.jpg"; 20 | setTimeout("slide1()", intervalo) 21 | } -------------------------------------------------------------------------------- /aulas/slide/style.css: -------------------------------------------------------------------------------- 1 | #main{ 2 | max-width: 1080px; 3 | margin: 0 auto; 4 | } 5 | 6 | img{ 7 | max-width: 100%; 8 | } -------------------------------------------------------------------------------- /aulas/tabuada/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tabuada 6 | 7 | 8 |

JS - Aula7: Tabuada

9 | 10 | 11 | -------------------------------------------------------------------------------- /aulas/tabuada/tabuada.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula7: Tabuada 3 | * @author Professor José de Assis 4 | */ 5 | 6 | for(var i = 1; i < 11; i++){ 7 | document.write("

Tabuada do " + i + "

"); 8 | for(var j = 1; j < 11; j++){ 9 | document.write(i + " x " + j + " = " + (i * j) + "
"); 10 | } 11 | } -------------------------------------------------------------------------------- /aulas/vincularJS/documento.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS - Aula3: Vinculando um documento JS 3 | * @author Professor José de Assis 4 | */ 5 | 6 | document.write("

" + "Professor José de Assis" + "

"); -------------------------------------------------------------------------------- /aulas/vincularJS/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JS - Vincular documento JS 6 | 7 | 8 |

JS - aula 3

9 | 10 | 11 | -------------------------------------------------------------------------------- /material extra/exercicios/array/array.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Estudo do array 3 | * @author José de Assis 4 | */ 5 | 6 | //Exemplo 1 - Array simples (vetor) 7 | function exemplo1() { 8 | //sem array 9 | let time1 = "Corinthians"; 10 | let time2 = "São Paulo"; 11 | let time3 = "Palmeiras"; 12 | let time4 = "Santos"; 13 | document.write("

Sem array: " + time1 + "

"); 14 | //com array 15 | //a linha abaixo cria um array de tamanho 4 16 | var times = ["Corinthians", "São Paulo", "Palmeiras", "Santos"]; 17 | //a linha abaixo recupera o conteúdo do (casinha) índice [2] 18 | document.write("

Com array: " + times[0] + "

"); 19 | //a linha abaixo retorna o tamanho do array 20 | document.write("

Tamanho do array: " + times.length + "

"); 21 | } 22 | 23 | //Exemplo 2 - Uso do array em um jogo de cartas 24 | function exemplo2() { 25 | //Copas (alt + 3) Ouros (alt + 4) Paus (alt + 5) Espada (alt + 6) 26 | var nipes = ["♥", "♦", "♣", "♠"]; 27 | var faces = [ 28 | "A", 29 | "2", 30 | "3", 31 | "4", 32 | "5", 33 | "6", 34 | "7", 35 | "8", 36 | "9", 37 | "10", 38 | "J", 39 | "Q", 40 | "R", 41 | ]; 42 | //document.write("

Carta sorteada: " + faces[2] + " de " + nipes[1] +"

");//apoio a lógica 43 | //Usando a classe Math.random para gerar números aleatórios 44 | //Math.floor -> converte para números inteiros 45 | //(Math.random() * 4) -> sorteio (0 ou 1 ou 2 ou 3) 46 | var sorteio_nipe = nipes[Math.floor(Math.random() * 4)]; 47 | var sorteio_face = faces[Math.floor(Math.random() * faces.length)]; 48 | document.write("

Carta sorteada: " + sorteio_face + sorteio_nipe + "

"); 49 | } 50 | 51 | //Exemplo 3 - Array Multidimensional (Matriz) 52 | function exemplo3() { 53 | //a linha abaixo cria um array de 2 dimensões [[linha],[coluna]] 54 | //Atenção 55 | var boletim = [ 56 | [8, 7, 9, 3], 57 | [4, 5, 8, 6], 58 | ]; 59 | //a linha abaixo recupera o conteúdo de um array de 2 dimensões 60 | document.write("

Média: " + boletim[0][3] + "

"); 61 | } 62 | -------------------------------------------------------------------------------- /material extra/exercicios/array/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JS - Estudo do array 6 | 7 | 8 | 9 |

JS - Array

10 |

Exemplo 1 - Array simples

11 | 14 |
15 |

Exemplo 2 - Jogo de Cartas

16 | 19 |
20 |

Exemplo 3 - Array Multidimensional

21 | 24 | 25 | -------------------------------------------------------------------------------- /material extra/exercicios/calculoMedia/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Cálculo da Média 9 | 10 | 11 |

Cálculo da média

12 |
13 | 14 |

15 | 16 | 17 |

18 |

19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /material extra/exercicios/calculoMedia/media.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Cálculo da média 3 | * @author José de Assis 4 | */ 5 | 6 | // Variáveis globais 7 | let nota1, nota2, media 8 | 9 | function calcular() { 10 | nota1 = Number(frmMedia.txtNota1.value.replace(",", ".")) 11 | nota2 = Number(frmMedia.txtNota2.value.replace(",", ".")) 12 | media = (nota1 + nota2) / 2 13 | frmMedia.txtMedia.value = media.toFixed(2) 14 | if (media < 5) { 15 | frmMedia.txtStatus.value = 'REPROVADO' 16 | } else { 17 | frmMedia.txtStatus.value = 'APROVADO' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /material extra/exercicios/cartas_v2/cartas.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sorteio de uma carta 3 | * Exemplo de uso do array 4 | * @author Professor José de Assis 5 | */ 6 | 7 | function sortearCarta() { 8 | let nipes = ["♠", "♥", "♣", "♦"] 9 | let faces = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] 10 | 11 | //sorteio do índice dos vetores 12 | let nipe = nipes[Math.floor(Math.random() * 4)] 13 | let face = faces[Math.floor(Math.random() * 13)] 14 | //console.log(`${face}${nipe}`) 15 | 16 | //Determinar a cor com base no naipe sorteado 17 | let cor 18 | if (nipe === '♥' || nipe === '♦') { 19 | cor = '#ff0000' 20 | } else { 21 | cor = '#000000' 22 | } 23 | 24 | // renderizar o canto superior esquerdo da carta 25 | document.getElementById('supEsq').innerHTML = `
${face}
${nipe}
` 26 | document.getElementById('supEsq').style.color = cor 27 | 28 | // renderizar o canto inferior direito da carta 29 | document.getElementById('infDir').innerHTML = `
${face}
${nipe}
` 30 | document.getElementById('infDir').style.color = cor 31 | 32 | // renderizar o centro da carta 33 | let cc = document.getElementById('centroCarta') 34 | 35 | if (face === 'J') { 36 | cc.innerHTML = `` 37 | } else if (face === 'Q') { 38 | cc.innerHTML = `` 39 | } else if (face === 'K') { 40 | cc.innerHTML = `` 41 | } else { 42 | cc.innerHTML = `${nipe}` 43 | cc.style.color = cor 44 | } 45 | } -------------------------------------------------------------------------------- /material extra/exercicios/cartas_v2/img/dama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/cartas_v2/img/dama.png -------------------------------------------------------------------------------- /material extra/exercicios/cartas_v2/img/rei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/cartas_v2/img/rei.png -------------------------------------------------------------------------------- /material extra/exercicios/cartas_v2/img/valete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/cartas_v2/img/valete.png -------------------------------------------------------------------------------- /material extra/exercicios/cartas_v2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Cartas 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |
16 |
17 |
18 | 19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /material extra/exercicios/cartas_v2/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | Folha de estilo - cartas 3 | @author professor José de Assis 4 | */ 5 | 6 | /* Layout */ 7 | 8 | * { 9 | margin: 0; 10 | padding: 0; 11 | border: 0; 12 | } 13 | 14 | .Container { 15 | display: flex; 16 | flex-direction: column; 17 | justify-content: center; 18 | align-items: center; 19 | height: 100vh; 20 | } 21 | 22 | body { 23 | background-color: #f0f0f0; 24 | font-family: sans-serif; 25 | font-size: 1em; 26 | } 27 | 28 | /* Botão */ 29 | button { 30 | padding: 10px 20px; 31 | background-color: #ffffff; 32 | border: 1px solid #000000; 33 | border-radius: 25px; 34 | font-size: 1.2em; 35 | } 36 | 37 | /* Carta */ 38 | .Carta { 39 | width: 250px; 40 | height: 350px; 41 | background-color: #ffffff; 42 | margin-bottom: 50px; 43 | box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 4px, rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, rgba(0, 0, 0, 0.2) 0px -3px 0px inset; 44 | border-radius: 10px; 45 | position: relative; /*ref. carta (alinhamento)*/ 46 | } 47 | 48 | .Canto { 49 | position: absolute; 50 | font-size: 2em; 51 | text-align: center; 52 | } 53 | 54 | #supEsq { 55 | top: 20px; 56 | left: 15px; 57 | } 58 | 59 | #infDir { 60 | bottom: 25px; 61 | right: 15px; 62 | transform: rotate(180deg); 63 | } 64 | 65 | .Centro { 66 | display: flex; 67 | align-items: center; 68 | justify-content: center; 69 | height: 100%; 70 | font-size: 6em; 71 | } -------------------------------------------------------------------------------- /material extra/exercicios/conversor/conversor.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Exemplo de uso da estrutura switch case 3 | * @author José de Assis 4 | */ 5 | 6 | function converter() { 7 | var numero; 8 | //parseInt faz a conversão para o tipo inteiro 9 | numero = parseInt(frmConversor.txtNumero.value); 10 | //exemplo de uso da estrutura switch case 11 | switch (numero) { 12 | case 1: 13 | frmConversor.txtMes.value = "Janeiro"; 14 | break; 15 | case 2: 16 | frmConversor.txtMes.value = "Fevereiro"; 17 | break; 18 | // e assim vai... 19 | default: 20 | frmConversor.txtMes.value = "Mês inválido"; 21 | break; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /material extra/exercicios/conversor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JS - aula 3 - Switch Case 6 | 7 | 8 |

Conversor número x mês

9 | 10 |
11 |

Número:

12 |

Mês correspondente:

13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /material extra/exercicios/eleitor/eleitor.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Eleitor 3 | * Exercício de fixação else if AND OR 4 | * @author José de Assis 5 | */ 6 | 7 | function verificar() { 8 | let idade 9 | idade = Number(frmEleitor.txtIdade.value) 10 | if (idade < 16) { 11 | alert('Proibido votar') 12 | } else if (idade >= 18 && idade <= 70) { 13 | alert('Obrigatório votar') 14 | } else { 15 | alert('Voto facultativo') 16 | } 17 | } -------------------------------------------------------------------------------- /material extra/exercicios/eleitor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Eleitor 9 | 10 | 11 | 12 |

Eleitor

13 |
14 | 15 |

16 | 17 | 18 |

19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /material extra/exercicios/funcoes/hello.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Exemplo de uma função simples 3 | * @author José de Assis 4 | */ 5 | 6 | function helloWorld(){ 7 | let nome 8 | nome = promp ('Qual é o seu nome ?') 9 | alert ('Hello ' + nome) 10 | } -------------------------------------------------------------------------------- /material extra/exercicios/funcoes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Funções 8 | 9 | 10 |

Função simples

11 |
12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Cálculo do IMC 3 | * @author José de Assis 4 | */ 5 | 6 | let peso, altura, imc 7 | 8 | function calcular() { 9 | peso = Number(frmImc.txtPeso.value.replace(",", ".")) 10 | altura = Number(frmImc.txtAltura.value.replace(",", ".")) 11 | imc = peso / (altura * altura) 12 | frmImc.txtImc.value = imc.toFixed(2) 13 | if (imc < 17) { 14 | document.getElementById('status').src = 'imc1.png' 15 | } else if (imc >= 17 && imc < 18.5) { 16 | document.getElementById('status').src = 'imc2.png' 17 | } else if (imc >= 18.5 && imc < 25){ 18 | document.getElementById('status').src = 'imc3.png' 19 | } else if (imc >= 25 && imc < 30){ 20 | document.getElementById('status').src = 'imc4.png' 21 | }else if (imc >= 30 && imc < 35){ 22 | document.getElementById('status').src = 'imc5.png' 23 | }else if (imc >= 35 && imc < 40){ 24 | document.getElementById('status').src = 'imc6.png' 25 | }else { 26 | document.getElementById('status').src = 'imc7.png' 27 | } 28 | } 29 | 30 | function limpar() { 31 | document.getElementById('status').src = 'imc.png' 32 | } 33 | -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc1.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc2.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc3.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc4.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc5.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc6.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/imc7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/exercicios/imc/imc7.png -------------------------------------------------------------------------------- /material extra/exercicios/imc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Cálculo do IMC 9 | 10 | 11 |

Cálculo do IMC

12 |
13 | 14 |

15 | 16 | 17 |

18 |
19 | imc 20 | 21 | 22 | -------------------------------------------------------------------------------- /material extra/exercicios/pdv/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | PDV 8 | 9 | 10 |

PDV

11 |
12 | 13 | 14 |

15 |

Desconto:

16 |

Total com desconto:

17 |
18 | 19 |

20 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /material extra/exercicios/pdv/pdv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * PDV - Exercício referente à cálculo de porcentagem 3 | * @author José de Assis 4 | */ 5 | 6 | // Esta variável está presente nas 2 funções, portanto precisa ser global 7 | let totalDesconto 8 | 9 | function calcularDesconto() { 10 | let total, desconto, valorDesconto 11 | //entrada 12 | total = Number(frmPdv.txtTotal.value.replace(',', '.')) 13 | desconto = Number(frmPdv.txtPorcentagem.value.replace(',', '.')) 14 | //processamento 15 | valorDesconto = (total * desconto) / 100 16 | totalDesconto = total - (total * desconto) / 100 17 | //saída 18 | frmPdv.txtDesconto.value = 'R$ ' + valorDesconto.toFixed(2) 19 | frmPdv.txtTotalDesconto.value = 'R$ ' + totalDesconto.toFixed(2) 20 | } 21 | 22 | function calcularTroco() { 23 | let valorPago, troco 24 | valorPago = Number(frmPdv.txtValorPago.value.replace(',', '.')) 25 | troco = valorPago - totalDesconto 26 | frmPdv.txtTroco.value = 'R$ ' + troco.toFixed(2) 27 | } -------------------------------------------------------------------------------- /material extra/exercicios/regra3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Regra 3 8 | 9 | 10 |

Regra de 3

11 |
12 | de 13 | 14 | 15 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /material extra/exercicios/regra3/regra3.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Cálculo de porcentagem "REGRA de 3" 3 | * @author José de Assis 4 | */ 5 | 6 | function calcular() { 7 | let x, y, resultado 8 | x = Number(frmRegra3.txtX.value.replace(',', '.')) 9 | y = Number(frmRegra3.txtY.value.replace(',', '.')) 10 | resultado = (x * y) / 100 11 | frmRegra3.txtResultado.value = resultado.toFixed(2) 12 | } -------------------------------------------------------------------------------- /material extra/exercicios/validacao/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Validação simples com JS 9 | 10 | 11 | 12 |
13 |
14 |
15 |
16 | Masculino 17 | Feminino
18 |
19 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /material extra/exercicios/validacao/validador.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Validação simples com JS 3 | * @author José de Assis 4 | */ 5 | 6 | function validacao() { 7 | // o método abaixo é usado para capturar dados de formulários 8 | // diversos facilitando a busca 9 | let formulario = document.forms.frmCadastro; 10 | let nome = formulario.txtNome.value; 11 | let cpf = formulario.txtCpf.value; 12 | let sexo = formulario.sexo.value; 13 | let perfil = formulario.txtPerfil.value; 14 | let erro = false; // apoio a lógica o formulário não tem erros 15 | if (nome.indexOf(" ") === -1) { 16 | alert("Preencha o nome completo"); 17 | erro = true; 18 | } 19 | if (cpf.length != 11) { 20 | alert("CPF inválido"); 21 | erro = true; 22 | } 23 | if (perfil.length < 20) { 24 | alert("Digite pelo menos 20 caracteres"); 25 | erro = true; 26 | } 27 | 28 | if (erro === true) { 29 | return false; 30 | } else { 31 | return true; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /material extra/jquery/fundamentos.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/javascript/59603a6da5e48216c4882bc59ce0b65a38e4ad10/material extra/jquery/fundamentos.txt -------------------------------------------------------------------------------- /material extra/jquery/helloJQuery/estudo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Estudo da biblioteca JQuery 3 | * @author José de Assis 4 | */ 5 | 6 | $('#efeito').fadeOut(5000).fadeIn(5000) -------------------------------------------------------------------------------- /material extra/jquery/helloJQuery/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Estudo do JQuery 8 | 9 | 10 | 11 |

Entendo o JQuery

12 | logo 13 | 14 | 15 | -------------------------------------------------------------------------------- /material extra/jquery/helloJQuery/jquery-3.4.1.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0 2 | 3 | 4 | 5 | 6 | 7 | 8 | Jquery 9 | 10 | 11 | 12 | 13 | 14 |
15 | 18 | 19 | 20 | 28 |
29 |
30 |

Professor José de Assis

31 |
32 |
33 |

Destaque 1

34 |

Texto

35 |
36 | 37 |
38 |

Olá turminha !

39 |
40 |
41 |

Destaque 2

42 |

Texto

43 |
44 | 45 |
46 |

Neste site você encontra exemplos JQUERY

47 |
48 |
49 | 50 |
    51 |
  • tux1
  • 52 |
  • tux2
  • 53 |
  • tux3
  • 54 |
  • tux4
  • 55 |
56 |
57 | 58 |
59 |

© Professor José de Assis

60 |
61 | topo 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /material extra/jquery/siteJQuery/menu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Menu responsivo usando JQuery 3 | * @author José de Assis 4 | */ 5 | 6 | $(document).ready(function () { 7 | $('.Hamburguer').click(function () { 8 | $('.Menu ul').slideToggle() 9 | }) 10 | // a função abaixo resolve o problema de "sumir" o menu 11 | // mobile -> desktop 12 | $(window).resize(function () { 13 | if ($(window).width() >= 480) { 14 | $('.Menu ul').removeAttr('style') 15 | } 16 | }) 17 | }) -------------------------------------------------------------------------------- /material extra/jquery/siteJQuery/style.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | body{ 7 | font-family: sans-serif; 8 | } 9 | 10 | header{ 11 | max-width: 1112px; 12 | margin: 0 auto; 13 | height: 128px; 14 | } 15 | 16 | .Logo{ 17 | float: left; 18 | height: 96px; 19 | padding: 15px; 20 | } 21 | 22 | .Logo img{ 23 | height: 100%; 24 | } 25 | 26 | .Hamburguer{ 27 | background-color: #888888; 28 | text-decoration: none; 29 | font-size: 2em; 30 | padding: 0px 8px 0px 8px; 31 | color: #fff; 32 | border-radius: 5px; 33 | display: none; 34 | } 35 | 36 | .Menu{ 37 | float: right; 38 | padding-top: 52px; 39 | } 40 | 41 | .Menu ul{ 42 | list-style: none; 43 | } 44 | 45 | .Menu ul li{ 46 | float: left; 47 | } 48 | 49 | .Menu ul li a{ 50 | text-decoration: none; 51 | padding: 15px; 52 | color: #000; 53 | } 54 | 55 | .Menu ul li a:hover{ 56 | color: #ff0000; 57 | transition: all 0.5s; /*efeito de transição*/ 58 | 59 | } 60 | 61 | .Layout{ 62 | background-image: url('imagens/background.jpg'); 63 | height: 320px; 64 | background-size: cover; /*mantem o tamanho máximo sem repetição */ 65 | background-position: center; 66 | padding-top: 200px; 67 | background-attachment: fixed; 68 | } 69 | 70 | .Layout p{ 71 | text-align: center; 72 | color: #fff; 73 | font-size: 3em; /* 12pt ou 16px */ 74 | font-weight: bold; 75 | } 76 | 77 | .Modulo{ 78 | padding: 150px 0px 150px 0px; 79 | margin: 0 auto; 80 | max-width: 1112px; 81 | text-align: center; 82 | } 83 | 84 | /* Destaque */ 85 | .Destaque{ 86 | list-style: none; /*remover os bullets*/ 87 | overflow: auto; /* corrigir o comportamento do float */ 88 | } 89 | 90 | .Destaque li{ 91 | float: left; 92 | padding: 10px; 93 | } 94 | 95 | .Destaque img{ 96 | border: #e8e8e8 1px solid; 97 | cursor: pointer; 98 | } 99 | 100 | footer{ 101 | background-color: #8b0000; 102 | padding: 70px; 103 | text-align: center; 104 | color: #fff; 105 | font-size: 0.9em; 106 | } 107 | 108 | #top{ 109 | position: fixed; 110 | cursor: pointer; 111 | right: 15px; 112 | bottom: 15px; 113 | } 114 | 115 | /********** Tratamento responsivo **********/ 116 | 117 | @media (max-width: 480px){ 118 | header{ 119 | height: 88px; 120 | } 121 | .Logo{ 122 | height:64px; 123 | padding: 12px; 124 | } 125 | 126 | .Hamburguer{ 127 | display: block; 128 | float: right; 129 | margin: 22px; 130 | } 131 | 132 | .Menu{ 133 | float: left; 134 | width: 100%; 135 | padding: 0; 136 | } 137 | 138 | .Menu ul{ 139 | background-color: #fff; 140 | display: none; /* O JQuery fará o menu aparecer */ 141 | } 142 | 143 | .Menu ul li{ 144 | float: none; 145 | } 146 | 147 | .Menu ul li a{ 148 | padding: 15px; 149 | display: block; 150 | } 151 | 152 | .Destaque li{ 153 | float: none; 154 | } 155 | 156 | } -------------------------------------------------------------------------------- /material extra/jquery/siteJQuery/topo.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Função jQuery para voltar ao topo 3 | * @author José de Assis 4 | */ 5 | 6 | $(document).ready(function () { 7 | // .click(function(){}) -> quando clicar no objeto identificado pelo id #top 8 | $('#top').click(function () { 9 | $('html,body').animate({ scrollTop: 0 }, 'slow') 10 | }) 11 | }) -------------------------------------------------------------------------------- /material extra/jquery/validacaoJQuery/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Validação de formulários com JQuery 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 |
21 |

22 |

23 |

24 |

25 |

Termos de uso

26 | 27 |
28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /material extra/jquery/validacaoJQuery/jquery.validate.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 2 | * https://jqueryvalidation.org/ 3 | * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ 4 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr.pseudos||a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e<=d},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a}); -------------------------------------------------------------------------------- /material extra/jquery/validacaoJQuery/validacao2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Exemplo de uso de um plugin JQuery 3 | * @author José deAssis * 4 | */ 5 | 6 | $(document).ready(function(){ 7 | $('#frmCadastro').validate({ 8 | rules:{ 9 | nome: { 10 | required: true, 11 | minlength: 4 12 | }, 13 | email: { 14 | required: true, 15 | email: true 16 | }, 17 | senha: { 18 | required: true, 19 | minlength: 8 20 | }, 21 | senhaConfirmacao: { 22 | required: true, 23 | equalTo: senha 24 | }, 25 | termos: { 26 | required: true 27 | } 28 | }, 29 | 30 | messages:{ 31 | nome: { 32 | required: " Favor digitar o nome", 33 | minlength: " O campo nome deve ter no mínimo 4 caracteres" 34 | }, 35 | email: { 36 | required: " O campo Email é obrigatório", 37 | email: " Email inválido" 38 | }, 39 | senha: { 40 | required: " Campo obrigatório", 41 | minlength: " A senha deve ter no mínimo 8 caracteres" 42 | }, 43 | senhaConfirmacao: { 44 | required: " Campo obrigatório", 45 | equalTo: " As senhas digitadas não são iguais" 46 | }, 47 | termos: { 48 | required: " Para se cadastrar é necessário aceitar os termos" 49 | } 50 | 51 | } 52 | }) 53 | }) --------------------------------------------------------------------------------