繁体   English   中英

JavaScript数组-意外令牌

[英]JavaScript array - unexpected token

您好,我正在尝试创建一系列错误,并立即显示它们。 这样的事情。

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[] = ...

因为error[]不是有效的JavaScript标识符。 删除[] 最接近的有效变量名称将是error而不是error[]

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

两个主要问题-错误数组被反复错误地声明,结果数组的显示不正确。 这是两个问题的解决方法。

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函数而不是添加/删除,但这取决于您

您将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;
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM