JQuery Mobile и нокаут формы отправить обязательный

Я наткнулся на очевидную несовместимость между knockoutjs и jquery mobile, когда дело доходит до поведения отправки формы.

Рассмотрим следующую разметку:

<form data-bind="submit: myKoSubmitAction">
   <!-- form fields here -->
</form>

Предполагается, что нокаут предотвращает отправку / получение сервером и вместо этого вызывает myKoSubmitAction. jqm также будет препятствовать стандартному поведению отправки только для jqm, причина в том, что отправка формы заменяется запросом ajax.

Таким образом, хотя нокаут (предположительно) успешно предотвращает стандартный запрос к серверу, он не может помешать jqm отправить запрос ajax.

Я нашел ответ на эту проблему в группе Google и подумал, что это должно быть на SO. Увидеть ниже

Ответы на вопрос(2)

data-ajax="false" к<form> элемент.

УвидетьОтправка форм.

 28 мар. 2013 г., 01:13
@MikeWhite, по-видимому, нет, потому что это предложение сработало для меня, или, возможно, оно должно происходить в том порядке, в котором вы включаете библиотеки
 15 янв. 2013 г., 19:00
Нет, потому чтоdata-bind="submit: ..." переопределяет стандартную форму отправки.
 12 янв. 2013 г., 01:13
Разве это не отправит форму стандартным способом (с перезагрузкой страницы)?
Решение Вопроса

которое мне удалось найти, - это следующее пользовательское связывание:

//This binding fixes apparent incompatibility between knockout and jqm
ko.bindingHandlers.jqmsubmit = {
  init: function (el, accessor, allbindings, vm) {
    ko.bindingHandlers.submit.init(el, accessor, allbindings, vm);
    $(el).submit(function (e) {
        // prevent the submit behavior
        e.preventDefault();
        e.stopPropagation();
        return false;
    });
  }
};

Для использования вместо стандартного представления ko обязательна:

<form data-bind="jqmsubmit: myKoSubmitAction">
  <!-- form fields here -->
</form>
 02 окт. 2013 г., 06:35
Это работает для вас в iOS?
 LOAS03 окт. 2013 г., 08:23
Я не тестировал в iOS Safari. JQM и / или нокаут может показать девиантное поведение в этом браузере, насколько я знаю.

Ваш ответ на вопрос