Tôi đang sử dụng KnockoutJS với SammyJS cho một ứng dụng trang.Cách ngăn chặn gửi biểu mẫu
Trong html Tôi có dạng thẻ như sau
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
và viewmodel của tôi, đã tuyên bố hai chức năng và sammy url tuyến đường
function ViewModel() {
var self = this;
self.name = ko.observable("");
self.search = function() {
alert(self.name);
};
Sammy(function() {
this.get('#:id', function() {
//do something....
});
}).run();
}
ko.applyBindings(new ViewModel());
Tất cả các mã hoạt động tốt, cho đến khi tôi gõ một cái gì đó trong textbox sau đó gửi biểu mẫu. Tôi mong đợi không có trình duyệt url sau cửa sổ cảnh báo, nhưng url được thay đổi thành một cái gì đó như thế này "http: // localhost: 8258/undefined?" url ban đầu của tôi là "http: // localhost: 8258"
Tôi nghi ngờ định tuyến url sammy, vì vậy hãy xóa mã sammy khỏi mã javascript, sau đó url không thay đổi sau cửa sổ cảnh báo. Có lẽ tôi không hiểu làm thế nào sammy hoạt động.
Làm cách nào để ngăn thay đổi url trong trường hợp này?
Bạn đã thử trở 'false' từ' chức năng self.search' của bạn? –
cảm ơn Gene, tôi nhận thấy rằng tôi đã không đặt tuyến đường bưu điện ở Sammy. – Ray
Điểm nhỏ ... vì 'self.name' là một hàm, bạn nên gọi' alert (self.name()) '. –