Я использую KnockoutJS с SammyJS для одностраничного приложения.Как предотвратить отправку формы
В HTML у меня есть тэг формы, как следовать
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
и в моем ViewModel, объявил две функции и Сэого маршрут URL
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());
Весь код работает хорошо, пока я не что-то типа в текстовом поле затем отправьте форму. Я не ожидал просмотра URL-адресов после окна предупреждения, но URL-адрес изменился на что-то вроде этого: «http: // localhost: 8258/undefined?» мой оригинальный URL-адрес «http: // localhost: 8258»
Я усомнился в том, что smmy url routing, поэтому удаленный код sammy из javascript-кода, затем URL-адрес не изменяется после окна предупреждения. Возможно, я не понимаю, как работает sammy.
Как предотвратить изменение URL в этом случае?
вы пробовали возвращение 'false' из вашей' функции self.search'? –
спасибо Джин, я заметил, что я не установил почтовый маршрут в Сэмми. – Ray
Незначительная точка ... так как 'self.name' является функцией, вы должны вызывать' alert (self.name()) '. –