JavaScript数组-意外的令牌

JavaScript array - unexpected token

本文关键字:令牌 意外 数组 JavaScript      更新时间:2023-10-04

你好,我正在尝试创建一个错误数组,并立即显示它们。像这样的东西。

if (!first_name) {
    var error[] = "Заполните Фамилию";
    $('#first_name').addClass('error');
} else {
    $('#first_name').removeClass('error');
}
if (!second_name) {
    var error[] = 'Заполните Имя';
    $('#second_name').addClass('error');
} else {
    $('#second_name').removeClass('error');
}
if (!last_name) {
    var error[] = 'Заполните Отчество';
    $('#last_name').addClass('error');
} else {
    $('#last_name').removeClass('error');
}
if (!course) {
    var error[] = 'Заполните Курс';
    $('#course').addClass('error');
} else {
    $('#course').removeClass('error');
}
if (!math && !programming && !english && !history) {
    var error[] = 'Заполните хотябы один предмет';
    $('#math,#programming,#english,#history').addClass('error');
} else {
    $('#math,#programming,#english,#history').removeClass('error');
}

然后

if(error.length > 0) {
    $(".errors").html(error);
}

但我得到了一个错误Uncaught SyntaxError:Unexpected token]

我做错了什么?

两个主要问题-错误数组被重复错误地声明,以及结果数组的显示被错误地处理。以下是解决这两个问题的方法。。。。

var error = [];  // initialise empty array
if (!first_name) {
    error.push( "Заполните Фамилию");
    $('#first_name').addClass('error');
} else {
    $('#first_name').removeClass('error');
}
if (!second_name) {
    error.push( 'Заполните Имя');
    $('#second_name').addClass('error');
} else {
    $('#second_name').removeClass('error');
}
if (!last_name) {
    error.push('Заполните Отчество');
    $('#last_name').addClass('error');
} else {
    $('#last_name').removeClass('error');
}
if (!course) {
    error.push( 'Заполните Курс');
    $('#course').addClass('error');
} else {
   $('#course').removeClass('error');
}
if (!math && !programming && !english && !history) {
    error.push( 'Заполните хотябы один предмет');
    $('#math,#programming,#english,#history').addClass('error');
} else {
    $('#math,#programming,#english,#history').removeClass('error');
}
// you will need to join the elements together somehow before displaying them
if (error.length > 0) {
    var data = error.join( '<br />');
    $(".errors").html(data);
}

您可能还想考虑使用toggleClass函数而不是添加/删除,但这取决于

所有这些行都包含语法错误:

var error[] = ...

因为CCD_ 1不是有效的JavaScript标识符。删除[] s。最接近的有效变量名应该是error,而不是error[]

当您通过JavaScript linter工具运行代码时,这种错误会非常明显。

您混淆了JavaScript和PHP。

这是不正确的数组声明方式:

var error[] = 'Заполните Отчество';

相反:

var error = new Array();

var error = [];

使用javascript:将值附加到数组中

var error = [];
error.push('Error 1');
error.push('Error 2');

然后,显示它们:

$('.errors').html(
    error.join('<br/>') // "Error 1<br/>Error 2"
);

医生:推,加入。

您可以像一样一次显示所有错误消息

var error=''
if (!first_name) {
    error += "Заполните Фамилию.<br />";
    $('#first_name').addClass('error');
} else {
    $('#first_name').removeClass('error');
}
if (!second_name) {
    error += 'Заполните Имя<br />';
    $('#second_name').addClass('error');
} else {
    $('#second_name').removeClass('error');
}
if (!last_name) {
    error += 'Заполните Отчество<br />';
    $('#last_name').addClass('error');
} else {
    $('#last_name').removeClass('error');
}
if (!course) {
    error += 'Заполните Курс<br />';
    $('#course').addClass('error');
} else {
    $('#course').removeClass('error');
}
if (!math && !programming && !english && !history) {
    error +='Заполните хотябы один предмет<br />';
    $('#math,#programming,#english,#history').addClass('error');
} else {
    $('#math,#programming,#english,#history').removeClass('error');
}
if (error != '') {
    $(".errors").html(error);
    return false;
}

error是一个变量,我将所有错误存储在其中,并立即显示在屏幕上。