Как правильно проверить и отправить форму, используя Knockout / jQuery / Bootstrap - PullRequest
0 голосов
/ 08 мая 2019

Я проверяю форму для маршрута. После успешной проверки я хочу отправить форму на другой маршрут, чтобы перетащить следующую страницу на портале. Это правильный способ сделать это? Это не правильно.

Я пытался обработать проверку по нажатию кнопки, но она немедленно отправляет форму, даже если произошла ошибка.

В настоящее время у меня есть атрибуты 'action' & 'method' в форме вместе с атрибутом submit для нокаута для обработки проверки. Это где я чувствую себя вне.

В следующем коде вы увидите, что я запускаю .validate () в случае успеха, тогда как раньше я запускал .submit ()

  • Метод проверки (handleProceed) *
self.handleProceed = function() {
    $.ajax({
        type: "POST",
        url: "/apps/o365/validate_address",
        dataType: "json",
        cache: false,
    }).always( function(jqXHR, textStatus) {
        if ( textStatus != "success" || jqXHR.eligible == false ) {
            $("#proceedToPurchase").removeClass("disabled processing").text("Proceed to Purchase");
            $("#proceedToPurchaseModal").modal("show");
        } else if ( textStatus === "timeout" ) {
          alert("got timeout");
          $('#proceedToPurchase').addClass("disabled");
        } else {
            $("#proceedToPurchase").addClass("processing");
            $("#o365Form").validate();
        }
    });
};
  • Как я обращаюсь с атрибутами формы *
<form id="o365Form" data-bind="attr: { action : purchaseURL }, submit: handleProceed" method="POST">
  • Как работает кнопка в форме *
<button 
id="proceedToPurchase"
type="submit"
class="btn btn-secondary btn-block py-4 font-20"
data-bind="attr: { disabled: !formIsFilled() }"
>

Ожидаемая:

  1. Кнопка нажата
  2. handleProceed () запускается и проверяет
  3. ТО форма отправлена ​​на следующую страницу
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...