Сообщение проверки JQuery для флажков не работает - PullRequest
0 голосов
/ 12 сентября 2018

Мне нужно получить сообщение как " Это поле обязательно для заполнения ", если флажок не установлен.

Просмотр:

<div style="width: 100%;">
                <label class="headlabel" id="passLable" name="passLable">Category List : <strong>*</strong></label>
                <div style="width: 100%;" class="form-group px-3">
                    <?php foreach ($cat as $data2) { ?>
                        <div class="form-check px-2" style="display: inline-block; margin-right: 20px;">
                            <input type="checkbox" class="form-check-input" value="<?php echo $data2->id ?>" name="cat[]" id="category">
                            <label class="form-check-label"
                                   style="padding-left: 10px;"><?php echo $this->lang->line($data2->cat_name); ?> </label>
                        </div>
                    <?php } ?>
                </div>
            </div>

js:

$(document).ready(function () {
   $('#addNewCompanyForm').each(function(){
    $(this).validate({
        submitHandler : function(){
            addNewCompany();
        },
        rules: {    
            'cat[]' : {
                required : true
            }
        },            

        messages: {                
             'cat[]' : {
                 required : "plase fill this."
             }
        },
        errorElement: "small",
        errorPlacement: function ( error, element ) {
            error.addClass( "form-control-feedback" );

            element.parents( ".form-group" ).addClass( "form-control-feedback" );

            if ( element.prop( "type" ) === "checkbox" ) {
                error.insertAfter( element.parent( "label" ) );
            } else {
                error.insertAfter( element );
            }
        },
        highlight: function ( element, errorClass, validClass ) {
            $( element ).parents( ".form-group" ).addClass( "has-danger" ).removeClass( "has-success" );
            $('input').addClass( "form-control-danger" ).removeClass( "form-control-success" );
        },
        unhighlight: function ( element, errorClass, validClass ) {
            $( element ).parents( ".form-group" ).addClass( "has-success" ).removeClass( "has-danger" );
            $('input').addClass( "form-control-success" ).removeClass( "form-control-danger" );
        }
    });
});
});

Это уже показывает флажки в красном цвете, но сообщение не отображается.Как я могу получить сообщение для проверки.

Я добавил свой полный код js выше.

edit

enter image description here

1 Ответ

0 голосов
/ 12 сентября 2018

Добавить диапазон ниже цикла foreach

<div style="width: 100%;">
            <label class="headlabel" id="passLable" name="passLable">Category List : <strong>*</strong></label>
            <div style="width: 100%;" class="form-group px-3">
                <?php foreach ($cat as $data2) { ?>
                    <div class="form-check px-2" style="display: inline-block; margin-right: 20px;">
                        <input type="checkbox" class="form-check-input" value="<?php echo $data2->id ?>" name="cat[]" id="category">
                        <label class="form-check-label"
                               style="padding-left: 10px;"><?php echo $this->lang->line($data2->cat_name); ?> </label>
                    </div>
                <?php } ?>
                <span class="error" id='errorCheck'></span>
            </div>
        </div>

Использование $('#errorCheck').html(error)

 $(document).ready(function () {
$('#addNewCompanyForm').validate({
    submitHandler : function(){
        addNewCompany();
    },
    rules: {    
        'cat[]' : {
            required : true
        }
    },            

    messages: {                
         'cat[]' : {
             required : "plase fill this."
         }
    },
    errorElement: "small",
    errorPlacement: function ( error, element ) {
        error.addClass( "form-control-feedback" );

        element.parents( ".form-group" ).addClass( "form-control-feedback" );

        if ( element.hasClass( "form-check-input" )) {
            $('#errorCheck').html(error);
        } else {
            error.insertAfter( element );
        }
    },
    highlight: function ( element, errorClass, validClass ) {
        $( element ).parents( ".form-group" ).addClass( "has-danger" ).removeClass( "has-success" );
        $('input').addClass( "form-control-danger" ).removeClass( "form-control-success" );
    },
    unhighlight: function ( element, errorClass, validClass ) {
        $( element ).parents( ".form-group" ).addClass( "has-success" ).removeClass( "has-danger" );
        $('input').addClass( "form-control-success" ).removeClass( "form-control-danger" );
    }
});
});
...