2009-11-30 22 views
7
私は現在、私は、次の糸くずとき、私のjQueryのIE7で動作するように取得するのは難しいしようとしている

末尾のカンマの問題は、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"} 
    }, 
}); 

...私はリントからこのエラーを取得する:「警告: ECMA-262オブジェクトイニシャライザで後続のカンマが合法ではない "

これは何を意味するのか、誰にもわかりますか?

+0

Firefoxはコードの末尾にカンマがあるかどうかを誤って解析します。誤解を招きます。 Internet Explorer 7/8(およびおそらく以下)はそうではありません。 –

+0

これはIEが標準にとどまっているが、Fireboxがそうでない場合の1つのケースです! –

+1

Firefoxは厳しい警告を表示しますが、これはFirefox 3.6では発生しません。これはES5ではこれが許可されているためです。 – sdwilsh

答えて

11

は末尾のカンマを削除します。しかしここには、最後の項目の後にカンマが追加されています([a, b, c,]など)。これはECMA-262で許可されていません。

+0

Firefoxは実際にあなたに厳しい警告を与えますが、この動作はES5では変更されています。詳細については、https://bugzilla.mozilla.org/show_bug.cgi?id=508637を参照してください。 – sdwilsh

6

底部付近に余分なカンマ:最後の行に2番目に

}, // This comma here? 
}); 

$(".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束、n00b間違い、私は知っています:) – timkl

3

それは話していませんか?

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

オブジェクト{}または配列[]を作成するとき、あなたは、カンマで個々の要素を分離する:以下の部分の終わりにコンマ -

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

私は、これはしばらく前に頼まれたけど、これは役に立つかもしれません。 JSLintからJavaScriptを実行すると、これらの「余分なカンマ」があるかどうかがわかります。

関連する問題