2009-11-30 2 views
7

В настоящее время я пытаюсь трудно получить мой JQuery работать в IE7, когда я LINT следующее:отставая проблема запятой, JavaScript

$(".regflow").validate({ 
    errorLabelContainer: $("#error-message"), 
    rules: { 
     txtTextOnly: {required: true,textOnly: true}, 
     txtNumbersOnly: {required: true,numbersOnly: true}, 
     txtPhoneOnly: {required: true,phoneOnly: true}, 
     txtAreaCodeOnly: {required: true,numbersOnly: true}, 
     txtSimCodeOnly: {required: true,simCodeOnly: true}, 
     txtCprOnly1: {required: true,numbersOnly: true}, 
     txtCprOnly2: {required: true,cprOnly1: true}, 
     txtMailOnly: {required: true,mailOnly: true} 
    }, 

    messages: { 
     txtTextOnly: {required: "Dette felt skal udfyldes"}, 
     txtNumbersOnly: {required: "Dette felt skal udfyldes"}, 
     txtPhoneOnly: {required: "Dette felt skal udfyldes"}, 
     txtAreaCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtSimCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly1: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly2: {required: "Dette felt skal udfyldes"}, 
     txtMailOnly: {required: "Dette felt skal udfyldes"} 
    }, 
}); 

... Я получаю эту ошибку из Lint: «предупреждение: конечная запятая не является законной в инициализаторе объектов ECMA-262 "

Кто-нибудь знает, что это значит и как это исправить?

+0

Firefox будет разбирать код с запятой или без нее, что вводит в заблуждение. Internet Explorer 7/8 (и, возможно, ниже) нет. –

+0

Это один случай, когда IE поддерживает стандарт, но Firebox не делает этого! –

+1

Firefox даст вам строгое предупреждение, но этого больше не будет в Firefox 3.6, поскольку это допустимо поведение в ES5. – sdwilsh

ответ

11

Удалите Запятую - запятую в конце следующей части:

messages: { 
     txtTextOnly: {required: "Dette felt skal udfyldes"}, 
     txtNumbersOnly: {required: "Dette felt skal udfyldes"}, 
     txtPhoneOnly: {required: "Dette felt skal udfyldes"}, 
     txtAreaCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtSimCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly1: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly2: {required: "Dette felt skal udfyldes"}, 
     txtMailOnly: {required: "Dette felt skal udfyldes"} 
    }, 

При создании объекта {} или массив [], вы отделить отдельные элементы с запятой. Но здесь есть дополнительная запятая после последнего элемента, такого как [a, b, c,] - это запрещено в соответствии с ECMA-262.

+0

Firefox действительно даст вам строгое предупреждение об этом, но обратите внимание, что это поведение изменилось в ES5. Подробнее см. Https://bugzilla.mozilla.org/show_bug.cgi?id=508637. – sdwilsh

6

Дополнительная запятая в нижней части:

$(".regflow").validate({ 
    errorLabelContainer: $("#error-message"), 
    rules: { 
     txtTextOnly: {required: true,textOnly: true}, 
     txtNumbersOnly: {required: true,numbersOnly: true}, 
     txtPhoneOnly: {required: true,phoneOnly: true}, 
     txtAreaCodeOnly: {required: true,numbersOnly: true}, 
     txtSimCodeOnly: {required: true,simCodeOnly: true}, 
     txtCprOnly1: {required: true,numbersOnly: true}, 
     txtCprOnly2: {required: true,cprOnly1: true}, 
     txtMailOnly: {required: true,mailOnly: true} 
    }, 

    messages: { 
     txtTextOnly: {required: "Dette felt skal udfyldes"}, 
     txtNumbersOnly: {required: "Dette felt skal udfyldes"}, 
     txtPhoneOnly: {required: "Dette felt skal udfyldes"}, 
     txtAreaCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtSimCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly1: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly2: {required: "Dette felt skal udfyldes"}, 
     txtMailOnly: {required: "Dette felt skal udfyldes"} 
    }, //<--- this one!!!! 
}); 
+0

Thx a bunch, ошибка n00b, я знаю :) – timkl

3

Разве это не говоря о:

}, // This comma here? 
}); 

на второй до последней строки?

2

Удалите последнюю запятую из второй последней строки:

$(".regflow").validate({ 
    errorLabelContainer: $("#error-message"), 
    rules: { 
     txtTextOnly: {required: true,textOnly: true}, 
     txtNumbersOnly: {required: true,numbersOnly: true}, 
     txtPhoneOnly: {required: true,phoneOnly: true}, 
     txtAreaCodeOnly: {required: true,numbersOnly: true}, 
     txtSimCodeOnly: {required: true,simCodeOnly: true}, 
     txtCprOnly1: {required: true,numbersOnly: true}, 
     txtCprOnly2: {required: true,cprOnly1: true}, 
     txtMailOnly: {required: true,mailOnly: true} 
    }, 

    messages: { 
     txtTextOnly: {required: "Dette felt skal udfyldes"}, 
     txtNumbersOnly: {required: "Dette felt skal udfyldes"}, 
     txtPhoneOnly: {required: "Dette felt skal udfyldes"}, 
     txtAreaCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtSimCodeOnly: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly1: {required: "Dette felt skal udfyldes"}, 
     txtCprOnly2: {required: "Dette felt skal udfyldes"}, 
     txtMailOnly: {required: "Dette felt skal udfyldes"} 
    } 
}); 
0

Я знаю, что это было предложено некоторое время назад, но это может быть полезным. Если вы запустите свой JavaScript через JSLint, он скажет вам, есть ли какая-либо из этих «лишних запятых».

Смежные вопросы