无法调用方法'toString'ofundefined|我的代码有问题
Cannot call method 'toString' of undefined | There is something wrong with my code?
显然我的脚本是对的,有人能帮我吗?当我看到控制台时,它显示消息Cannot call method 'toString' of undefined
。
可能是ID选择器有问题吗?我可以只使用一个函数而不是使用一个进行验证和另一个来运行我的函数吗?
/* ==== CPF Validator ==== */
function validar_cpf(cpf)
{
regex = /'./g;
cpf = cpf.toString().replace(regex,'');
cpf_split = cpf.split('-');
numero = cpf_split[0];
dv = cpf_split[1];
numero_init = numero.toString() + dv.toString();
if(numero_init.length < 11)
return false
var somatorio = 0;
for(i = 10, n = 0; i >= 2 ; i--, n++){
m = numero.charAt(n) * i;
somatorio += m;
}
dv1 = somatorio / 11;
dv1 = parseInt(dv1);
resto = somatorio % 11;
if(resto < 2)
dv1 = 0;
else
dv1 = Math.abs(11 - resto);
numero += dv1.toString();
somatorio = 0;
for(i = 11, n= 0; i >= 2 ; i--, n++ ){
m = numero.charAt(n) * i;
somatorio += m;
}
resto = somatorio % 11;
if(resto < 2)
dv2 = 0;
else
dv2 = 11 - resto;
numero += dv2.toString();
if(numero == numero_init)
return true;
else
return false;
}
function ValidaCpf()
{
if (validar_cpf(cpf))
{
document.getElementById('first-cpf').classList.add('hide');
document.getElementById('second-cpf').classList.remove('hide');
document.getElementById('cpf').classList.add('form_invalido');
document.getElementById('cpf').classList.remove('form_valido');
}
else {
document.getElementById('first-cpf').classList.remove('hide');
document.getElementById('second-cpf').classList.add('hide');
document.getElementById('cpf').classList.remove('form_invalido');
document.getElementById('cpf').classList.add('form_valido');
}
}
我找到了一个解决方案
/* ==== CPF Validator ==== */
function ValidaCpf(input) {
var value = input.value,
result = true,
invalids = new Array(
'111.111.111-11',
'222.222.222-22',
'333.333.333-33',
'444.444.444-44',
'555.555.555-55',
'666.666.666-66',
'777.777.777-77',
'888.888.888-88',
'999.999.999-99',
'000.000.000-00',
'11111111111',
'22222222222',
'33333333333',
'44444444444',
'55555555555',
'66666666666',
'77777777777',
'88888888888',
'99999999999',
'00000000000'
);
for( var i = 0; i<invalids.length; i++) {
if( invalids[i] == value) {
result = false;
}
}
add = 0;
value = value.replace("-","");
value = value.replace(/'./g,"");
for( var j=0; j < 9; j++ ) {
add += parseInt(value.charAt(j),10) * (10-j);
}
rev = 11 - ( add % 11 );
if( rev == 10 || rev == 11) {
rev = 0;
}
if( rev != parseInt(value.charAt(9),10) ) {
result = false;
}
add = 0;
for( var k=0; k < 10; k++ ) {
add += parseInt(value.charAt(k),10) * (11-k);
}
rev = 11 - ( add % 11 );
if( rev == 10 || rev == 11) {
rev = 0;
}
if( rev != parseInt(value.charAt(10),10) ) {
result = false;
}
if ( result ) {
input.parentNode.previousSibling.previousSibling.classList.remove('hide');
input.parentNode.nextSibling.nextSibling.classList.add('hide');
input.classList.remove('form_invalido');
input.classList.add('form_valido');
} else {
input.parentNode.previousSibling.previousSibling.classList.add('hide');
input.parentNode.nextSibling.nextSibling.classList.remove('hide');
input.classList.add('form_invalido');
input.classList.remove('form_valido');
}
}
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 验证我的代码json
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 我不知道为什么我的代码是错误的?又有什么错
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- I'我不知道为什么我的代码没有'不起作用
- 为什么动态加载的事件在我的代码中不能正常工作
- 如何禁用我的切换按钮?这是我的代码
- 我需要将条形图集成到我的代码中
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 我的代码在<脚本>标记,但没有'不能在外部文件中工作
- 在我的代码中,实体类"卡片展示”;不起作用
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 我的代码很完美,但我现在不知道为什么我发现了问题
- Html、css和jQuery.我的代码有问题
- 鼠标事件,我的代码出了什么问题
- 我怎样才能修复我的代码,以便<罢工>不会使我的 Javascript 代码无效
- 如何在我的“代码块”中使表格 Squarespace 网站响应式
- 如何使我的代码更快
- 在我的代码中管理大量硬编码数据的最佳方法