Как предотвратить отправку формы

Я использую KnockoutJS с SammyJS для одной страницы применение.

В html у меня есть тег формы, как показано ниже

<form data-bind='submit: search'>
  <label>Find user:</label>
  <input data-bind='value: name' />
</form>

и в моей модели представления объявлены две функции и URL-адрес маршрута sammy

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"

Я сомневался в маршрутизации URL-адресов Sammy, поэтому удалил код Sammy из кода javascript, после чего URL-адрес не меняется после окна предупреждения. Может я не понимаю как работает sammy.

Как предотвратить изменение URL в этом случае?

5
задан Ray 18 May 2012 в 12:43
поделиться