2009-11-30 15 views
7

Ich bin derzeit schwer zu bekommen meine jQuery arbeiten in IE7, wenn ich Lint folgendes versuchen:Hinter Komma Problem, 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"} 
    }, 
}); 

... Ich erhalte diese Störung von Lint: „Warnung: Nachkommastellen sind nicht zulässig in ECMA-262 Objektinitialisierer "

Weiß jemand, was das bedeutet, und wie kann ich es beheben?

+0

Firefox wird den Code mit oder ohne das nachfolgende Komma analysieren, was irreführend ist. Internet Explorer 7/8 (und wahrscheinlich darunter) nicht. –

+0

Dies ist ein Fall, wenn IE den Standard hält, aber Firebox nicht! –

+1

Firefox würde Ihnen eine strikte Warnung geben, aber das wird in Firefox 3.6 nicht mehr passieren, da dies Verhalten in ES5 erlaubt ist. – sdwilsh

Antwort

11

das Komma entfernen - das Komma am Ende des folgenden Teils:

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

während ein Objekt oder ein Array {}[] Erstellen Sie mit einem Komma einzelne Elemente zu trennen. Aber hier gibt es ein zusätzliches Komma nach dem letzten Punkt wie [a, b, c,] - das ist nicht erlaubt nach ECMA-262.

+0

Firefox würde Sie tatsächlich eine strikte Warnung darüber geben, aber beachten Sie, dass dieses Verhalten in ES5 geändert hat. Weitere Informationen finden Sie unter https://bugzilla.mozilla.org/show_bug.cgi?id=508637. – sdwilsh

6

Das zusätzliche Komma in der Nähe der Unterseite:

$(".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 ein Bündel, ein n00b Fehler, ich weiß :) – timkl

3

Ist es nicht zu sprechen:

}, // This comma here? 
}); 

auf der zweiten Linie zu halten?

2

das letzte Komma aus der vorletzten Zeile entfernen:

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

Ich weiß, das vor einiger Zeit gefragt wurde, aber dies könnte hilfreich sein. Wenn Sie Ihr JavaScript über JSLint ausführen, wird es Ihnen sagen, ob es eines dieser "zusätzlichen Kommas" gibt.

Verwandte Themen