Подтвердить что ты не робот

Странное перенаправление с использованием привязки данных submit, sammy.js и knockout.js вместе

У меня есть такая форма на моей странице:

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

Если у меня этот код в моем JS script (конечно, я удалил весь несвязанный код и протестировал его, чтобы убедиться, что я все еще могу воссоздать только с этим кодом, обычно у вас будет больше кода внутри, например .get и .post):

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

Когда форма отправляется, страница перенаправляется на странный URL, например ?ko_unique=1

Если я удалю часть Sammy из моего script, этого не произойдет. Я думаю, что это имеет какое-то отношение к пузырям событий, а Сэмми и Нокаут оба подключают onSubmit, а браузер соблюдает только возвращаемое значение из последней вызванной функции.

4b9b3361

Ответ 1

После долгих поисков и не найдя ответов здесь на SO, я в итоге нашел это:

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

И изменил мой код на это:

Sammy(function() {

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

}).run();

Чтобы Sammy никогда не делал ничего особенного, когда форма была отправлена ​​на мою страницу. Поскольку я использую Knockout, я не планирую использовать Sammy для любых форм. Если вам нужен более сложный код или версия плагина, вы можете увидеть вышеуказанный URL-адрес, но для меня, и я подозреваю, что для большинства пользователей KO это меньше кода и проще просто отключить эту функцию Sammy.