hello我在我的行中有一个错误frequency=frequency.substr(1);
在控制台中抛出的错误是未捕获TypeError:无法读取未定义的属性“substr”。 我不知道我该怎么解决。
这是我的代码:
function save() {
var startfrequency = '';
var frequency = $('input:radio[name=frequency]:checked').attr('id');
frequency = frequency.substr(1);
if(frequency != undefined ){
if(frequency == 'daily'){
if(!$('input:checkbox[name="frequencyDays"]').is(':checked')){
$('input:checkbox[name="frequencyDays"]').parent().addClass('form-valide-error-bottom');
return;
}
var daysfrequency = [];
$("input:checkbox[name=frequencyDays]:checked").each(function (){
var fd = $(this).attr('id');
daysfrequency.push(fd.substr(2));
});
daysfrequency = daysfrequency.join(",");
}else if(frequency == 'biweekly'){
var daysfrequency = [];
$("input:radio[name=frequencybiweekly]:checked").each(function (){
var fq = $(this).attr('id');
daysfrequency.push(fq.substr(2));
});
daysfrequency = daysfrequency.join(",");
}else{
var daysfrequency = '';
//START FREQUENCY
if(!$('input:radio[name="startfrequency"]').is(':checked')){
$('input:radio[name="startfrequency"]').parent().addClass('form-valide-error-bottom');
return;
}
var startfrequency = [];
$("input:radio[name=startfrequency]:checked").each(function (){
var ifr = $(this).attr('id');
startfrequency.push(ifr.substr(2));
});
startfrequency = startfrequency.join(",");
}
}else{
frequency = '';
}
frequency
变量定义在:
var frequency = $('input:radio[name=frequency]:checked').attr('id');
此.attr('id')
(请参阅文档)查找id
属性,如果未设置该属性,则返回未定义
。
因此,如果id
未设置,则您的frequency
为undefined
,这会导致错误,因为undefined
上没有substr
函数。
因此,第4行frequency=frequency.substr(1);
导致了这个错误,尝试将它下移一行到未定义的检查下面,然后它就不会出错了。