2009-11-30 12 views
7

Obecnie próbuję trudno dostać mój jQuery do pracy w IE7, kiedy Lint następujące:spływu problemem przecinek, 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"} 
    }, 
}); 

... mam ten błąd z Lint: „ostrzeżenie: Przecinek końcowy nie jest legalny w inicjatorach obiektów ECMA-262 "

Czy ktoś wie, co to oznacza i jak mogę to naprawić?

+0

Firefox przeanalizuje kod grzywny z końcowym przecinkiem lub bez niego, co wprowadza w błąd. Internet Explorer 7/8 (i prawdopodobnie poniżej) nie. –

+0

Jest to jeden przypadek, gdy IE zachowuje standard, ale Firebox nie! –

+1

Firefox dałby ci ostrzeżenie, ale nie będzie to już miało miejsca w Firefoksie 3.6, ponieważ jest to dozwolone w ES5. – sdwilsh

Odpowiedz

11

Zdjąć tylną - przecinek przecinek na końcu dalszej części:

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"} 
    }, 

Podczas tworzenia obiektu {} lub tablicę [], oddzielić poszczególne elementy przecinkami. Ale tutaj jest dodatkowy przecinek po ostatnim elemencie, takim jak [a, b, c,] - który nie jest dozwolony zgodnie z ECMA-262.

+0

Firefox faktycznie dałby ci ostrzeżenie o tym, ale zauważ, że to zachowanie zmieniło się w ES5. Więcej informacji można znaleźć na stronie https://bugzilla.mozilla.org/show_bug.cgi?id=508637. – sdwilsh

6

Dodatkowy przecinek u dołu:

$(".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, a błąd n00b, wiem :) – timkl

3

Czy to nie mówi o:

}, // This comma here? 
}); 

na przedostatnia linia?

2

usunąć ostatni przecinek z przedostatnim wierszu:

$(".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

Znam ten został poproszony jakiś czas temu, ale może to być pomocne. Jeśli uruchomisz JavaScript przez JSLint, pokaże Ci, czy są jakieś "dodatkowe przecinki".