tôi đã gặp rắc rối là .is(':empty')
vì vậy đây là tùy chọn làm việc của tôi chẳng hạn.
Trước:
rules: {
name: {required: true},
email: {required: true},
phone: {required: true}
}
Tất cả các lĩnh vực là yêu cầu.Nhưng tôi muốn email và/hoặc điện thoại như vậy để tạo ra các 'hoặc':
rules: {
name: {required: true},
email: {required:
function() {
//returns true if phone is empty
return !$("#phone").val();
}
},
phone: {required:
function() {
//returns true if email is empty
return !$("#email").val();
}
}
},
messages: {
email: "Email is required if no phone number is given.",
phone: "A phone number is required if no phone email is given."
}
Và bạn sẽ thấy rằng tôi đã thêm các tùy chọn messages
để cung cấp cho người dùng một số thông tin có ý nghĩa bởi vì các thông điệp mặc định sẽ nói rằng mỗi trường là bắt buộc mà không đúng trong tình huống này.
Tôi nghĩ rằng bạn sẽ phải tìm một cách để loại bỏ một quy tắc sau một được điền vào, và ngược lại nếu họ loại bỏ các giá trị, và gõ vào trường thứ hai. Điều đó sẽ tự động tạo tập lệnh xác thực của bạn. Có vẻ như một giải pháp đơn giản như thế này sẽ làm việc với jQuery đơn giản và không phải là thư viện xác nhận. –
bản sao có thể có của [Xác thực jQuery - yêu cầu ít nhất một trường trong một nhóm sẽ được điền] (http://stackoverflow.com/questions/1300994/jquery-validate-require-at-least-one-field-in-a -group-to-be-filled) – saluce