Tôi có một biểu mẫu nơi người dùng có thể tiếp tục thêm các mục vào danh sách. Khi họ đi để gửi trang này, tôi muốn xác nhận rằng danh sách này thực sự có các mục trong đó (không phải các mục riêng lẻ như chúng đã được xác nhận). Mỗi mục được thêm vào một hàng mới trong một bảng với TR có một thuộc tính thêm "hành động" ... do đó, nó trông giống như:Trình xác thực jQuery - Cách xác thực đối với các mục không phải là biểu mẫu?
<tr action="whatever">...</tr>
Những gì tôi đã cố gắng để làm là thêm một addMethod tùy chỉnh mà gọi một hàm sẽ đếm số hàng có hành động dưới dạng thuộc tính:
$("#tableID").find("tr[action]").length
và nếu chiều dài đó lớn hơn 0 thì trả về true, ngược lại, sai.
Điều này hoạt động tốt ngoài các cuộc gọi của trình xác thực nhưng vì lý do nào đó, nó hoàn toàn bỏ qua nó.
Tôi thực sự có thể sử dụng một ví dụ hoặc một số thông tin chi tiết về cách làm cho nó xác thực quy tắc này mặc dù nó không phải là một phần tử biểu mẫu cụ thể.
Scaled xuống mã:
* lưu ý rằng tôi đã có giá trị mặc định được thiết lập cho các thông điệp và những gì không.
$.validator.addMethod("validProductList", function (value, element) {
return this.optional(element) || validateProductList();
}, "You have no products in your list");
$("#processForm").click(function() {
$("#pageForm").validate({
submitHandler: function() {
$("#errors").hide();
//processPage();
},
rules: {
//other rules,
validProductList: true
}
});
});
function validateProductList() {
var isValid = false;
var useList = $("#tblAddedProducts").find("tr[action]").length;
if (useList > 0) { isValid = true; }
return isValid;
}
Le sigh. Cảm ơn bạn! Tôi sợ rằng đó là những gì cần thiết để xảy ra và tôi thực sự không thích thêm một lĩnh vực ẩn duy nhất chỉ để xác nhận khác. – Joshua
Bí quyết lĩnh vực ẩn không hoạt động nữa, nó không xác nhận đầu vào ẩn nữa trong phiên bản mới nhất. – burzum