Отключена кнопка далее, если поля не заполнены на шаге мастера форм

#jquery #forms #wizard #step

Вопрос:

Я хочу отключить кнопку «далее», если поля не заполнены на шаге мастера форм. Я не знаю объект .step в глубине, и мне не хватает этого шага. Вот мой код:

  //Sauvegarder les informations pour finaliser la création du compte de l'usager
   $(".icons-tab-steps").steps({

    headerTag: "h6",
    bodyTag: "fieldset",
    transitionEffect: "fade",
    titleTemplate: '<span class="step">#index#</span> #title#',
    labels: {
        finish: submitButton,
        next: nextButton,
        previous: prevButton
    },
    onFinished: function (event, currentIndex) {
        $('body').addClass('loading');
        var userName = $("#editRandomMp").find("#userName").val();
        var vieuxMp = $("#viewMp").val();
        var nouveauMp = $("#nouveauMp").val();
        var urlDefaut = $("#pageAccueilSelect").val();

        var jsonData = JSON.stringify({ userName: userName, vieuxMp: vieuxMp, nouveauMp: nouveauMp, urlDefaut: urlDefaut });
        $.ajax({
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            type: 'POST',
            url: '/Compte/FinaliserCompte',
            data: jsonData,
            success: function (data, textStatus, jqXHR) {
                if (data.code == 0) {
                    ModificationSucces(data);
                }
                else {
                    ModificationErreur(data);
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
                ModificationErreur({ code: jqXHR.status, message: ModalLabel.ErreurTechnique, data: [{ jqXHR: jqXHR, error: errorThrown }] });
            }
        });
    }
});
 

Обновить//////////

Покопавшись, я нашел части решения, которые помогли мне сделать то, что я хотел сделать, я поместил свой длинный фрагмент кода здесь, если это может помочь кому-то еще.

Это новый код(я не извлекал функции для отображения от начала до конца):

 //Paramètres pour le wizard form dans le modal #finaliserCompteModal

$(".icons-tab-steps").steps({

    headerTag: "h6",
    bodyTag: "fieldset",
    transitionEffect: "fade",
    titleTemplate: '<span class="step">#index#</span> #title#',
    labels: {
        finish: submitButton,
        next: nextButton,
        previous: prevButton
    },
    onStepChanging: function (event, currentIndex, newIndex) {
        currentStep = currentIndex;

        if (newIndex < currentIndex) {
            return true;
        }
        
        if (currentStep === 0) {
            var txtOldPwd = $('#vieuxMp').val();
            var txtPwd = $('#nouveauMp').val();
            var txtPwdConfirm = $('#confirmMP').val();

            var aLettres = new Array();
            aLettres.push("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");

            var bValide = false;
            var sMotPasse = txtPwd.toLowerCase();

            // Vérification de l'alphanumérique
            for (var i = 0; i < aLettres.length; i  ) {
                if (sMotPasse.indexOf(aLettres[i]) != -1) {
                    bValide = true;
                    i = aLettres.length   1;
                }
            }

            if (bValide) {
                for (var i = 0; i <= 9; i  ) {
                    if (sMotPasse.indexOf(i.toString()) != -1) {
                        bValide = true;
                        i = 10;
                    }
                    else { bValide = false; }
                }
            }

            if (bValide) {
                for (var i = 0; i < aLettres.length; i  ) {
                    var reg = new RegExp("("   aLettres[i]   ")", "gi");
                    sMotPasse = sMotPasse.replace(reg, "");
                }
                for (var i = 0; i <= 9; i  ) {
                    var reg = new RegExp("("   i.toString()   ")", "gi");
                    sMotPasse = sMotPasse.replace(reg, "");
                }
                if (sMotPasse.length > 0) { bValide = false; }
            }

            if (txtOldPwd == "") {

                alertMessage = "Entrez votre mot de passe actuel";
                sweetAlertInput(alertMessage);

                return false;
            }

            if (txtPwd == "") {

                alertMessage = "Entrez un mot de passe";
                sweetAlertInput(alertMessage);
                txtPwd = txtPwdConfirm = "";

                return false;
            }

            if (txtPwd.length < 6 || !bValide) {

                alertMessage = "Le mot de passe doit contenir nun minimum de 6 caractères (alphabétiques et numériques).nn* Exemple : 9c45Ep28";
                sweetAlertInput(alertMessage);
                txtPwd = txtPwdConfirm = "";
                
                return false;
            }

            if (txtPwdConfirm == "") {

                alertMessage = "Confirmez le mot de passe";
                sweetAlertInput(alertMessage);

                return false;
            }

            if (txtPwd != txtPwdConfirm) {

                alertMessage = "La confirmation ne correspond pas avec le mot de passe";
                sweetAlertInput(alertMessage);

                return false;
            }else {
                return true;
            }
        }
        if (currentStep === 1) {
            if ($('#pageAccueilSelect').val()) {
                return true;
            }
        }
        else {
            return false;
        }

    },
    onFinished: function (event, currentIndex) {
        //Sauvegarder les informations pour finaliser la création du compte de l'usager
        var inputOk = true;
        var userName = $("#finaliserCompteModal").find("#userName").val();
        var vieuxMp = $("#finaliserCompteModal").find("#vieuxMp").val();
        var nouveauMp = $("#finaliserCompteModal").find("#nouveauMp").val();
        var urlDefaut = $("#finaliserCompteModal").find("#pageAccueilSelect").val();
        var telephone = $("#finaliserCompteModal").find("#telephone").val();
        var email = $("#finaliserCompteModal").find("#email").val();
        var fonctionTravail = $("#finaliserCompteModal").find("#fonctionTravail").val();
        var lieuTravail = $("#finaliserCompteModal").find("#lieuTravail").val();
        var sexe = "";
        if ($('input[name="sexe"]').is(':checked')) {
            sexe = $("#finaliserCompteModal").find('input[name="sexe"]:checked').val();
        }

        if (telephone == "") {
            alertMessage = "Entrez le numéro de téléphone";
            sweetAlertInput(alertMessage);
          
            return false;
        }
        if (email == "") {

            alertMessage = "Entrez l'adresse de courrier électronique";
            sweetAlertInput(alertMessage);

            return false;
        }
        if (fonctionTravail == "") {

            alertMessage = "Entrez la fonction de travail";
            sweetAlertInput(alertMessage);
           
            return false;
        }
        if (lieuTravail == "") {

            alertMessage = "Entrez le lieu de travail";
            sweetAlertInput(alertMessage);
          
            return false;
        }
        if (sexe == "") {

            alertMessage = "Sélectionnez le sexe";
            sweetAlertInput(alertMessage);
            
            return false;
        }

        if (inputOk) {
            $('body').addClass('loading');
            var userName = $("#finaliserCompteModal").find("#userName").val();
            var vieuxMp = $("#finaliserCompteModal").find("#vieuxMp").val();
            var nouveauMp = $("#finaliserCompteModal").find("#nouveauMp").val();
            var urlDefaut = $("#finaliserCompteModal").find("#pageAccueilSelect").val();
            var telephone = $("#finaliserCompteModal").find("#telephone").val();
            var email = $("#finaliserCompteModal").find("#email").val();
            var fonctionTravail = $("#finaliserCompteModal").find("#fonctionTravail").val();
            var lieuTravail = $("#finaliserCompteModal").find("#lieuTravail").val();
            var sexe = "";
            if ($('input[name="sexe"]').is(':checked')) {
                sexe = $("#finaliserCompteModal").find('input[name="sexe"]:checked').val();
            }

            var jsonData = JSON.stringify({ userName: userName, vieuxMp: vieuxMp, nouveauMp: nouveauMp, urlDefaut: urlDefaut, telephone: telephone, email: email, fonctionTravail: fonctionTravail, lieuTravail: lieuTravail, sexe: sexe });
            $.ajax({
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                type: 'POST',
                url: '/Compte/FinaliserCompte',
                data: jsonData,
                success: function (data, textStatus, jqXHR) {
                    if (data.code == 0) {
                        var alerteMsg = "";
                        if (currentLang == "fr") {
                            alerteMsg = "Votre action a été complété avec succès";
                        } else {
                            alerteMsg = "Your action has been successfully completed";
                        }
                        $('body').removeClass('loading');
                        setTimeout(function () {
                            window.location.href = ''   data.message   ''
                        }, 3000);
                        sweetAlert({
                            title: '',
                            text: ''   alerteMsg   '',
                            timer: 3000,
                            type: "success",
                            showCancelButton: false,
                            showConfirmButton: false
                        });
                    }
                    else {
                        ModificationErreur(data);
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    ModificationErreur({ code: jqXHR.status, message: erreurTech, data: [{ jqXHR: jqXHR, error: errorThrown }] });
                }
            });
        } 
    }
});