如何使用Knockout / jQuery / Bootstrap正确验证和提交表单

时间:2019-05-08 18:57:25

标签: jquery html ajax forms knockout.js

我正在验证路线表格。验证成功后,我想将表单提交到另一条路线,以便在门户网站中提取下一页。这是正确的做法吗?感觉不对。

我尝试过在单击按钮时进行验证,但是即使出现错误也可以立即提交表单。

目前,我在表单上具有“操作”和“方法”属性,以及具有剔除提交属性以处理验证。这就是我的感觉。

在下面的代码中,您将看到我成功运行 .validate(),而在运行 .submit()

之前,
  • 验证方法(继续处理)*
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. 提交
  4. THEN 表单以拉出下一页

0 个答案:

没有答案