Tôi có kiểu xem đơn giản với một vài thuộc tính bắt buộc ... Tôi muốn mỗi đầu vào tô sáng màu đỏ nếu thuộc tính tương ứng không hợp lệ, nhưng tôi không muốn làm nổi bật hiển thị khi trang được tải ban đầu ... chỉ khi giá trị thay đổi hoặc khi người dùng cố gắng lưu/tiếp tục ...Ngăn chặn xác nhận loại trực tiếp từ đánh giá khi tải ban đầu
Ngay bây giờ, nó xác thực mô hình khung khi tải ban đầu vì tôi chỉ định ràng buộc dữ liệu = "css: {error: name.isValid() == false}", nhưng tôi không biết cách nào khác để làm điều này hoạt động tự động (tương tự như cách jQuery xác thực không hoạt động) ...
var foo = { name: ko.observable().extend({required: true}) };
<div data-bind="css: { error: !name.isValid() }">
<input type="text" data-bind="value: name" />
</div>
Bất kỳ ý tưởng về cách làm cho công việc này sẽ được đánh giá cao ... Cảm ơn!
Xin lỗi, trong nỗ lực của tôi để đơn giản hóa ví dụ của tôi, tôi rời ra rằng tôi thực sự trang trí parent-div với lớp "error", không phải là phần tử đầu vào, vì có các phần tử con/anh chị em khác cũng cần phải thay đổi (ví dụ: màu nhãn và "*" span visibility), do đó, điều này sẽ không hoạt động đối với tôi, tuy nhiên, tôi nghĩ rằng tôi đã tìm ra cách để đạt được plish này ... về cơ bản, tôi nối .isModified (false) sau mỗi .extend() gọi, và sau đó kiểm tra nếu .isModified() trong logic ràng buộc css của tôi (xem bên dưới ...) –
Tôi đã nối thêm câu trả lời của tôi với một giải pháp đơn giản hơn và có thể tái sử dụng hơn trang trí cho phần tử cha mẹ .... hãy thử nó! – RodneyTrotter
Tôi đã có thể làm cho nó hoạt động mà không cần phải tạo một trình xử lý ràng buộc ... Phần duy nhất tôi không thích về giải pháp của mình là tôi phải vòng qua các thuộc tính kiểu xem và đặt isModified (true) để các trường không hợp lệ nhưng chưa sửa đổi sẽ hiển thị trạng thái lỗi của chúng khi đối tượng bên ngoài của tôi gọi .save(). –