2011-07-21 11 views
29

Tôi mới sử dụng JQuery và đang sử dụng JQuery validation plugin.Plugin Xác thực jQuery - Thông báo tùy chỉnh

Tôi muốn hỏi, cách ghi đè thông điệp mặc định để hiển thị cũng văn bản trong nhãn được liên kết với phần tử biểu mẫu.

tôi sẽ nhận được một cái gì đó nhắn như thế này:

Dòng Mật khẩu là bắt buộc. thay vì mặc định Trường dữ liệu này là bắt buộc.

Mã bưu điện trường phải chứa ít nhất 3 ký tự. thay vì mặc định Vui lòng nhập ít nhất 3 ký tự.

Tôi cần ghi đè hành vi mặc định của plugin này, vì tôi không muốn chỉ định thông báo tùy chỉnh cho từng mục cho mọi loại xác thực.

Có thể không?

Trả lời

45
$("#signupform") 
    .validate({ 
     rules: { 
      password: "required", 
      postcode: { 
       required: true, 
       minlength: 3 
      } 
     }, 
     messages: { 
      password: "Field Password is required", 
      postcode: { 
       required: "Field PostCode is required", 
       minlength: "Field PostCode must contain at least 3 characters" 
      } 
    }); 
+0

Cảm ơn bạn đã trả lời nhưng như tôi đã nói: Tôi cần ghi đè hành vi mặc định của plugin này, vì tôi không muốn chỉ định thông báo tùy chỉnh cho từng mục cho mọi loại xác thực. Câu trả lời của bạn chính xác là những gì tôi không muốn. – Detonator

+0

@Martin: Rất tiếc, đã bỏ lỡ một chút. Vâng, cách duy nhất tôi có thể thấy để bạn ghi đè các tin nhắn mặc định, là bằng cách chỉnh sửa các plugin, mà tôi sẽ không khuyên bạn nên. Xem nếu ['invalidHandler'] (http://docs.jquery.com/Plugins/Validation/validate#toptions) sẽ hoạt động cho bạn hay không, nếu không các tùy chọn dường như bị hạn chế ở đây. – Shef

+3

cũng có thể đặt thông điệp đặc biệt cho đầu vào đặc biệt theo cách này: 'data-msg-required = "Vui lòng nhập địa chỉ email của bạn" 'hoặc' data-msg-email = "Vui lòng nhập địa chỉ email hợp lệ" 'trong đánh dấu html . –

4

Tôi cần làm điều tương tự và kết thúc bằng cách tạo phương thức tùy chỉnh để thông điệp của nó có thể được chia sẻ trên nhiều biểu mẫu.

Tôi tìm thấy câu trả lời này trong một câu hỏi tương tự như Stack Overflow: How can we specify rules for jquery validation plugin by class?

$.validator.addMethod(
    "newEmail", //name of a virtual validator 
    $.validator.methods.email, //use the actual email validator 
    "Custom error message" 
); 
16

Đây là những gì tôi thấy khi tôi đang tìm kiếm điều tương tự một vài ngày trước đây. Thật không may tôi không thể nhớ nơi tôi tìm thấy nó, vì vậy tôi không thể cung cấp cho người đã viết câu trả lời tín dụng.

jQuery.extend(jQuery.validator.messages, { 
    required:"This field is required.", 
    equalTo:"Password fields do not match.", 
    email:"Please enter a valid email.", 
}); 
+0

http: // stackoverflow.com/a/2457053/3416443 - đây là liên kết chính xác – Muarl

4

Có cách ngắn gọn hơn để đạt được điều này.

Sử dụng "dữ liệu msg" hoặc "dữ liệu msg- (rulename)" để ghi đè lên thông báo lỗi mặc định cho một quy tắc được xác định trước hoặc quy tắc tùy chỉnh. (Sau khi xác nhận jQuery v1.11.0, hiện v1.16.0)

<input id="pwd" name="pwd" type="password" value="" 
     required 
     data-msg-required="Field Password is required." /> 

<input id="postcode" name="postcode" type="text" value="" 
     required 
     data-msg-required="Field PostCode is required." 
     minlength="3" 
     data-msg-minlength="Field PostCode must contain at least 3 characters." /> 
+1

Câu trả lời hay nhất cho đến giờ nếu bạn chỉ cần tùy chỉnh một hoặc hai thông báo lỗi! – AlexisWbr

0

thêm này sau khi plugin:

jQuery.extend(jQuery.validator.messages, { 
    required: "Your new default message", 
    email: "That's not a valid email" 
}); 

bạn có thể đặt nó trong một tập tin riêng biệt nếu bạn muốn, nhưng chắc chắn Nó được bao gồm sau khi các plugin chính nó