JavaScript数组 - 意外令牌

时间:2013-11-24 06:53:35

标签: javascript jquery arrays

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

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]

我做错了什么?

5 个答案:

答案 0 :(得分:3)

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

var error[] = ...

因为error[]不是valid JavaScript identifier.,请删除[]。最接近的有效变量名称为error,而不是error[]

当您通过a JavaScript linter tool.

运行代码时,这种错误会非常明显

答案 1 :(得分:3)

两个主要问题 - 错误数组被重复和错误地声明,并且生成的数组的显示被错误地处理。这是两个问题的解决方案......

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

答案 2 :(得分:1)

您将JavaScript与PHP混淆。

这是声明数组的错误方法:

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

<强>而

var error = new Array();

var error = [];

答案 3 :(得分:1)

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

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

然后,要显示它们:

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

文档:pushjoin

答案 4 :(得分:0)

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

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

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