0

我正在开发一个 jQuery Mobile 网站并使用 jQuery 验证插件来验证我的表单。在某些表单上,我设置了 data-ajax="false",但仍然希望在单击提交按钮时显示加载微调器。要显示微调器,我使用以下代码

// Display spinner
$(document).delegate('.ajaxSpinner', 'click', function () {
    if($(".ajaxValidate").length == 0 || $(".ajaxValidate").valid()) { // Show spinner if no validation or form is valid
        $.mobile.showPageLoadingMsg();
    }
});

表单提交按钮有一个“ajaxSpinner”类,表单本身有一个“ajaxValidate”类。

在大多数表单上,这很好用,如果单击提交时表单无效,您将看不到微调器,而如果表单有效,则会显示微调器。

我只有一种表现不佳的表格......无论表格是否有效,微调器都会显示。表单很长,所以我想知道在我的手动显示微调器代码触发之前验证是否尚未完成。

我对 jQuery 不是很精通,所以任何人都可以发现我的代码中的缺陷吗?会不会是时间问题?如果是,是否有一种好方法可以确保在单击功能触发之前完成验证?

4

1 回答 1

1

我认为您需要在验证函数中调用微调器。

因此,使用验证插件,您通常可能会遇到这样的情况:

$(".ajaxValidate").validate({
    submitHandler : function(form) {

        // START YOUR SPINNER HERE
        $.mobile.showPageLoadingMsg();

        $(form).ajaxSubmit({

            success: function() {    // YOUR FORM WAS SUBMITTED  SUCCESSFULLY

                // DO SOMETHING WHEN THE FORM WAS SUBMITTED SCESSFULLY ...
                // ...

                // STOP THE SPINNER EVENTUALLY
                //$.mobile.hidePageLoadingMsg()

            }
        });
    }
});

希望这可以帮助。让我知道这是否适合您。

于 2012-09-15T00:21:36.690 回答