Quando eu clico nas datas o resultado do PDF e do colégio é indefinido "undefined"
Estou usando jquery, jspdf e outras bibliotecas como jsmask, jquery-phonebr
Alguém poderia me ajudar?
Códigos
Aqui gera o arquivo em PDF .... pds não sei por qual motivo as variáveis não funcionamm... tipo... funciona, mas tipo... eu fiz novas porque let não permite que o var seja usado dentro do $.value do JSPDF
const pdf = new jsPDF(); let button = document.querySelector(".button-primary"); let nombre = document.querySelector(".nomecompleto"); let rafael = document.querySelector(".celular"); let saber = document.querySelector(".email"); let oioi = document.querySelector(".idade"); let procure = document.querySelector(".numerodaidentidade"); let achei = document.querySelector(".orgaoexpedidor"); let soumais = document.querySelector(".cpf"); let tudo = document.querySelector(".datadenascimento"); let queijo = document.querySelector(".pai"); let amizade = document.querySelector(".mae"); let cep = document.querySelector(".cep"); let america = document.querySelector(".bairro"); let entenda = document.querySelector(".endereco"); let xman = document.querySelector(".complemento"); let homemdeferro = document.querySelector(".municipio"); let pokemon = document.querySelector(".estado"); let olhe = document.querySelector(".inscricao"); let observe = document.querySelector(".datadaprova"); let humanos = document.querySelector(".unidades"); let fonte = document.querySelector(".colegios"); button.addEventListener('click', printPDF) function printPDF() { event.preventDefault(); // impede o comportamento padrão da tag 'form'/ var name = `Nome Completo: ${nome.value}`; var duda = `Celular: ${celular.value}`; var encontre = `E-mail: ${email.value}`; var deus = `Idade: ${idade.value}`; var diz = `Número da Identidade: ${numerodaidentidade.value}`; var uhuu = `Orgão Expedidor: ${orgaoexpedidor.value}`; var venha = `CPF: ${cpf.value}`; var lembrar = `Data de Nascimento: ${datadenascimento.value}`; var sora = `Nome da Mãe: ${mae.value}`; var supr = `Nome do Pai: ${pai.value}`; var veja = `CEP: ${cep.value}`; var fuz = `Bairro: ${bairro.value}`; var como = `Endereço: ${endereco.value}`; var vai = `Complemento: ${complemento.value}`; var nossa = `Município: ${municipio.value}`; var festa = `Estado: ${estado.value}`; var agora = `Inscrição: ${inscricao.value}`; var nunca = `Data da Prova: ${datadaprova.value}`; var maiser = `Unidade: ${unidades.value}`; var ana = `Colégio: ${colegios.value}`; pdf.setFontSize(14); pdf.text(10, 10, "Formulário de Inscrição"); pdf.text(10, 40, name); pdf.text(10, 50, duda); pdf.text(10, 60, encontre); pdf.text(10, 70, deus); pdf.text(10, 80, diz); pdf.text(10, 90, uhuu); pdf.text(10, 100, venha); pdf.text(10, 110, lembrar); pdf.text(10, 120, sora); pdf.text(10, 130, supr); pdf.text(10, 140, veja); pdf.text(10, 150, fuz); pdf.text(10, 160, como); pdf.text(10, 170, vai); pdf.text(10, 180, nossa); pdf.text(10, 190, festa); pdf.text(10, 200, agora); pdf.text(10, 210, nunca); pdf.text(10, 220, maiser); pdf.text(10, 230, ana); pdf.save('fichadecadastro.pdf'); }
Aqui não deveria permitir que todo o campo que não foi preenchido... ele deveria desativar o botão, mas não funciona
(function() { $('form > input').keyup(function() { var empty = false; $('form > input').each(function() { if ($(this).val() == '') { empty = true; } }); if (empty) { $(':submit').attr('disabled', 'disabled'); } else { $(':submit').removeAttr('disabled'); } }); })()
Aqui impede que o campo orgaoexpedidor tenha números
jQuery('.orgaoexpedidor').keyup(function () { this.value = this.value.replace(/[^a-zA-Z.]/g,''); });
Tipo aqui faz as máscaras...
$(".cpf").mask("999.999.999-99"); $(".idade").mask("99"); $(".cep").mask("99.999-999"); $(".datadenascimento").mask("99/99/9999"); $('.celular').maskbrphone();
Tipo... aqui impede que o campo tenha outras coisas... o que é permitido é apenas número
function somenteNumeros(num) { var er = /[^0-9.]/; er.lastIndex = 0; var campo = num; if (er.test(campo.value)) { campo.value = ""; } }
Tipo....aqui impede que o campo idade... tenha mais que 3 algarismos
function toLimit(string = ""){ string.value = string.value.substring(0,2); }
Tipo... aqui seria para verificar o CPF... tipo se for inválido o botão gerar PDF não deveria ser ativado... mas, outro erro kkkk
function is_cpf (c) {
if((c = c.replace(/[^\d]/g,"")).length != 11)
return false
if (c == "00000000000")
return false;
if (c == "11111111111")
return false;
if (c == "22222222222")
return false;
if (c == "33333333333")
return false;
if (c == "44444444444")
return false;
if (c == "55555555555")
return false;
if (c == "66666666666")
return false;
if (c == "77777777777")
return false;
if (c == "88888888888")
return false;
if (c == "99999999999")
return false;
var r;
var s = 0;
for (i=1; i<=9; i++)
s = s + parseInt(c[i-1]) * (11 - i);
r = (s * 10) % 11;
if ((r == 10) || (r == 11))
r = 0;
if (r != parseInt(c[9]))
return false;
s = 0;
for (i = 1; i <= 10; i++)
s = s + parseInt(c[i-1]) * (12 - i);
r = (s * 10) % 11;
if ((r == 10) || (r == 11))
r = 0;
if (r != parseInt(c[10]))
return false;
return true;
}
cpfCheck = function (el) {
document.getElementById('cpfResponse').innerHTML = is_cpf(el.value)? '<span style="color:green">válido</span>' : '<span style="color:red">inválido</span>';
if(el.value=='') document.getElementById('cpfResponse').innerHTML = '';
}
Tipo aqui... faz options do array... os elementos são transformados em options
var states = ['AC','AL','AP','AM','BA','CE','DF','ES','GO','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SC','SP','SE','TO']; states.forEach(function(item){$('#estado').append('<option>' + item + '</option>');});
Tipo... aqui pega as datas da prova e cria options... pega o colégio e cria options... depois... se selecionar a option prova... será selecionada a option colégio
"Problema não consigo especificar as datas para o colégio e está dando infinido"
Tipo... eu seleciono... e a parte de abaixo não mostra
var datadaprova = [ '26/05', '21/07', '22/09', '24/11', '09/06', '04/08', '06/10', '15/12', '16/06', '18/08', '' ]; datadaprova.forEach(function(item, index){ $('#datadaprova').append('<option value="'+ index +'">' + item + '</option>'); }); var colegios = [ 'Menino Jesus', 'CDF Master', 'Ethos']; colegios.forEach(function(item, index){ $('#colegios').append('<option value="'+ index +'">' + item + '</option>'); }); $('#datadaprova').change(function() { $("#colegios").html('<option>'+ colegios[$("option:selected", this).index()] +'</option>'); });
Tipo... aqui coloca o array para unidades e faz os elementos do array... tipo como opção
var unity = ['Arcoverde', 'Paulista', 'Recife']; unity.forEach(function(item){$('#unidades').append('<option>' + item + '</option>');});
Aqui tipo... pega o id estado, inscrição, unidades, colegios... se mudar pega o que foi selecionado e adiciona como valor
$('#estado, #inscricao, #unidades, #colegios').on('change', function (e) { var optionSelected = $("option:selected", this); var valueSelected = this.value; });
Impede o tab, motivo "gera muitos pdf' 's "
$('input, body').bind('keypress', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
$('input, body').bind('keyup', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
$('input, body').bind('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
$('input, body').bind('click', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});