Требуемый класс не работает при выборе в мастере шаблонов

Я использую плагин формы мастера шаблонов.

Выбор получает значения параметров, динамически добавляемые к событию загрузки страницы. Я добавил требуемый класс в select, когда я нажимаю кнопку «Далее», не заполняя никаких значений во всех текстовых полях и сохраняя выбор по умолчанию (0), все проверки по умолчанию

Это поле является обязательным.

этого плагина отображается поверх всех текстовых полей, но не работает для select (поле категории).

HTML:

<form class="form-horizontal" id="form" onsubmit="return validateform()" method='post' action="./?action=savebookdetails" class="wizard-big">
    <h1>Book Details</h1>
    <fieldset>
        ... ...
        <div class="form-group">
            <label class="col-sm-3 control-label">ISBN *</label>
            <div class="col-sm-9">
                <input name="isbn" id="isbn" value="<?php if($result != '') echo $result->isbn; ?>" type="text" class="form-control only-numbers required" maxlength="11">
            </div>
        </div>
        <div class="form-group" id="dob">
            <label class="col-sm-3 control-label">Category *</label>
            <div class="col-sm-9">
                <select class="form-control required" onchange="fetchsubcategories(this.value)" id="category" name="category">
                    <option value="0">Select</option>
                </select>
            </div>
        </div>
    </fieldset>
</form>

В jQuery:

$("#wizard").steps();
$("#form").steps({
    bodyTag: "fieldset",
    onStepChanging: function(event, currentIndex, newIndex) {
        if (currentIndex > newIndex) {
            return true;
        }
        var form = $(this);
        if (currentIndex < newIndex) {
            $(".body:eq(" + newIndex + ") label.error", form).remove();
            $(".body:eq(" + newIndex + ") .error", form).removeClass("error");
        }
        form.validate().settings.ignore = ":disabled,:hidden";
        return form.valid();
    },
    onStepChanged: function(event, currentIndex, priorIndex) {
        if (currentIndex === 2 && priorIndex === 3) {
            $(this).steps("previous");
        }
    },
    onFinishing: function(event, currentIndex) {
        var form = $(this);
        form.validate().settings.ignore = ":disabled";
        return form.valid();
    },
    onFinished: function(event, currentIndex) {
        var form = $(this);
        form.submit();
    },
    onCanceled: function(event) {
        window.history.go(-1);
    }
}).validate({
    errorPlacement: function(error, element) {
        element.before(error);
    }
});

person Nida    schedule 30.11.2017    source источник
comment
какой плагин вы используете? Было бы лучше, если бы вы добавили фрагмент рабочего кода или скрипку и обрезали любой нежелательный код (я вижу функцию php и fetchsubcategories, которая не указана в вопросе)   -  person n4m31ess_c0d3r    schedule 30.11.2017
comment
Я использую плагин jquery-steps.com/Examples#vertical.   -  person Nida    schedule 30.11.2017


Ответы (2)


<option value="0">Select</option>

удалить 0 из значения в первом варианте выбора Новый код

<option value="">Select</option>
person Maulik    schedule 30.11.2017

Проверка формы без использования плагина jquery.validaiton. Вы должны установить имя класса одинаково для всех полей.

Например:

<input class="form-control amount validate_form" name="amount[]" type="text">
<p class="validateError" style="color:red;display:none;">please enter amount.</p>
<button type="submit" id="fees_stream_submit" class="btn btn-primary">Submit</a>

<script type="text/javascript">
    $(document).on('click', '#fees_stream_submit', function(e) {
    e.preventDefault();
    $(".validate_form").each(function() {
        var selectedTr = $(this);
        i = 0;
        var value = $(this).val();
        if (!value) {
            selectedTr.next("p").show();
            i++;
        } else {
            selectedTr.next("p").hide();
        }
    });

    if (i == 0) {
        $('#fees_stream_form').submit();
    }
});
</script>
person Mani    schedule 30.11.2017