2013-02-13 37 views
17

Tôi có một hình thức như thế này trên trang web của tôi:Weird chuyển hướng sử dụng dữ liệu ràng buộc nộp, sammy.js và knockout.js cùng

<form data-bind="submit: AddFolder"></form> 

Nếu tôi có mã này trong kịch bản JS của tôi (tất nhiên tôi đã loại bỏ tất cả các mã không liên quan và kiểm tra để chắc chắn rằng tôi vẫn có thể tái tạo chỉ với mã này, thông thường bạn sẽ có nhiều mã bên đây như .get và chức năng .post):

Sammy(function() { 
}).run(); 

Khi hình thức là đã gửi, trang chuyển hướng đến một URL lạ như ?ko_unique=1

Nếu tôi xóa phần Sammy khỏi tập lệnh của mình, điều này không xảy ra. Tôi nghĩ rằng nó có một cái gì đó để làm với sự kiện bubbling và Sammy và Knockout cả hai hooking onSubmit, và trình duyệt chỉ tôn trọng giá trị trả về từ chức năng cuối cùng được gọi là.

+0

Đối với tôi, ít nhất, trường được thêm vào là ko_unique_1 = true, thực tế tôi chỉ mang theo vì tôi đã google và không có gì xuất hiện. Nếu trang này cho biết tôi đã giải quyết vấn đề này vài ngày trước! –

Trả lời

48

Sau nhiều tìm kiếm, và không tìm thấy bất kỳ câu trả lời ở đây trên SO, tôi đã kết thúc việc tìm kiếm này:

https://groups.google.com/forum/?fromgroups#!topic/sammyjs/EYW-2Ygk3z8

Và sửa đổi mã của tôi như thế này:

Sammy(function() { 

    // Override this function so that Sammy doesn't mess with forms 
    this._checkFormSubmission = function(form) { 
     return (false); 
    }; 

}).run(); 

Vì vậy mà Sammy không bao giờ cố gắng làm bất kỳ điều gì đặc biệt khi biểu mẫu được gửi trên trang của tôi. Vì tôi đang sử dụng Knockout, tôi không định sử dụng Sammy cho bất kỳ hình thức nào. Nếu bạn muốn mã phức tạp hơn hoặc phiên bản plugin bạn có thể thấy URL ở trên, nhưng đối với tôi và tôi nghi ngờ sử dụng KO nhiều nhất, ít mã hơn và dễ dàng hơn để tắt tính năng Sammy này.

+0

Yup. Chỉ cần giết chết một vài giờ tự hỏi tại sao gửi biểu mẫu của tôi hoạt động như mong đợi w/knockout, nhưng kết quả hoàn toàn bị xóa khi một đường dẫn bí ẩn mới (tên miền của tôi) được áp dụng như vị trí và tuyến đường sammy bị ràng buộc để '' tiếp quản. Yikes. –

+1

tương tự ở đây, sẽ phải mất nhiều giờ để theo dõi điều này xuống, thx để đăng giải pháp. cách làm sạch này có lẽ là gói này vào một plugin sammy như đề xuất trong một trong những bài viết nhóm google cuối cùng. – philipphoffmann

+3

THANKKKK YOUUU !!!!! –

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