- Posts: 3
- Thank you received: 0
Ask the community, share ideas, and connect with other LimeSurvey users!
Please Log in to join the conversation.
O script não está funcionando como esperado para CPFs inválidos, como
Please Log in to join the conversation.
Please Log in to join the conversation.
<script type="text/javascript" charset="utf-8"> $(document).ready(function () { $('#question{QID} input[type="text"]').keyup(function(){ var cpf=$('#question{QID} input[type="text"]').val(); if(cpf.length==11) { if (!isCPFValido(cpf)) { alert("CPF inválido! Por favor, insira novamente."); $('#question{QID} input[type="text"]').val(""); // Limpa o campo } } }); }); function isCPFValido(cpf) { // Remove caracteres não numéricos cpf = cpf.replace(/\D/g, ""); // ???? // Verifica se o CPF tem 11 dígitos e não é formado por números repetidos if (cpf.length !== 11 || /^(\d)\1+$/.test(cpf)) { return false; } // Calcula o primeiro e o segundo dígito verificador const calcDigito = (base) => { const soma = base.reduce((acc, num, i) => acc + num * (base.length + 1 - i), 0); const resto = soma % 11; return resto < 2 ? 0 : 11 - resto; }; const nums = cpf.split("").map(Number); const digito1 = calcDigito(nums.slice(0, 9)); const digito2 = calcDigito(nums.slice(0, 10)); // Verifica se os dígitos verificadores estão corretos return digito1 === nums[9] && digito2 === nums[10]; } </script>
Please Log in to join the conversation.