2009-11-30 37 views
7

Tôi hiện đang cố gắng rất nhiều để có được jQuery của tôi để làm việc trong IE7, khi tôi lint như sau:trailing vấn đề dấu phẩy, 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"} 
    }, 
}); 

... Tôi nhận được lỗi này từ Lint: "cảnh báo: dấu phẩy sau không hợp lệ trong bộ khởi tạo đối tượng ECMA-262 "

Có ai biết điều này có nghĩa là gì không và cách khắc phục?

+0

Firefox sẽ phân tích cú pháp mã có hoặc không có dấu phẩy sau, gây hiểu nhầm. Internet Explorer 7/8 (và có lẽ bên dưới) thì không. –

+0

Đây là một trường hợp khi IE giữ tiêu chuẩn nhưng Firebox thì không! –

+1

Firefox sẽ cảnh báo cho bạn một cách nghiêm ngặt, nhưng điều đó sẽ không còn xảy ra trong Firefox 3.6 vì đây là hành vi được phép trong ES5. – sdwilsh

Trả lời

11

Tháo dấu phẩy dấu - dấu phẩy ở phần cuối của phần sau:

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

Trong khi tạo một đối tượng hoặc một mảng {}[], bạn tách các yếu tố cá nhân bằng dấu phẩy. Nhưng ở đây có một dấu phẩy bổ sung sau mục cuối cùng như [a, b, c,] - không được phép theo ECMA-262.

+0

Firefox thực sự sẽ cung cấp cho bạn một cảnh báo nghiêm ngặt về điều này, nhưng lưu ý rằng hành vi này đã thay đổi trong ES5. Xem https://bugzilla.mozilla.org/show_bug.cgi?id=508637 để biết thêm chi tiết. – sdwilsh

6

Dấu phẩy thêm gần cuối:

$(".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 một loạt, một lỗi n00b, tôi biết :) – timkl

3

Há chẳng phải nói về:

}, // This comma here? 
}); 

ngày thứ hai kéo dài dòng?

2

Tháo dấu phẩy cuối cùng từ dòng cuối cùng thứ hai:

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

Tôi biết điều này đã được hỏi một thời gian trước, nhưng điều này có thể hữu ích. Nếu bạn chạy JavaScript qua JSLint, nó sẽ cho bạn biết nếu có bất kỳ "dấu phẩy bổ sung nào" này.

Các vấn đề liên quan