Использовать пользовательскую проверку в умном мастере? - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу спросить, могу ли я использовать проверку Laravel в Smart Wizard.

мой пример берет сообщение об ошибке от laravel, чтобы появиться в Smart Wizard.

In на этом этапе я последовал примеру официальной веб-документации.

это код, который я сделал:

в файле .blade. php

@extends('layouts.base')

@section('before_script')
    <link rel="stylesheet" href="{{ asset('assets/css/smart_wizard.min.css') }}">
    <link rel="stylesheet" href="{{ asset('assets/css/smart_wizard_theme_dots.min.css') }}">
    <script src="{{ asset('assets/js/jquery.smartWizard.min.js')}}"></script>
    <script src="{{ asset('assets/js/bootstrap-validation.min.js') }}"></script>
    <style>
        .sw-btn-group {
            width: 100%;
            height: auto;
        }
    </style>
    <script>
        $(document).ready(function () {
            $('#smartwizard').smartWizard({
                theme: 'dots',
                transitionEffect: 'fade',
                transitionSpeed: '400',
                lang: { next: 'Selanjutnya', previous: 'Kembali'},
                toolbarSettings: {
                    toolbarButtonPosition: 'left',
                    showNextButton: true,
                    showPreviousButton: true
                }
            })

            $('#smartwizard').on("leaveStep", function(e, anchorObject, stepNumber, stepDirection) {
                var elmForm = $("#form-step-" + stepNumber);
                if (stepDirection === 'forward' && elmForm) {
                    elmForm.validator('validate');
                    var elmErr = elmForm.children('.has-error');
                    if (elmErr && elmErr.length > 0) {
                        return false;
                    }
                }
                return true;
            })
        })

    </script>
@endsection

@section('content')
<section>
    <div class="container">
        {{-- <br><br> --}}
        <form action="#" id="myForm" role="form" data-toggle="validator" method="post" accept-charset="utf-8">
            <div id="smartwizard">
                <ul>
                    <li><a href="#step-1">Step Title<br /><small>Step description</small></a></li>
                    <li><a href="#step-2">Step Title<br /><small>Step description</small></a></li>
                    <li><a href="#step-3">Step Title<br /><small>Step description</small></a></li>
                    <li><a href="#step-4">Step Title<br /><small>Step description</small></a></li>
                </ul>

                <div>
                    <div id="step-1" class="">
                        <h2>Your Name</h2>
                        <div id="form-step-0" role="form" data-toggle="validator">
                            <div class="form-group">
                                <label for="name">Name: </label>
                                <input type="text" name="name" id="name" class="form-control" required placeholder="enter your name">
                                <div class="help-block with-errors"></div>
                            </div>

                            <div class="form-group">
                                <label class="control-label">Pin</label>
                                <input id="pin" type="tel" pattern="[0-9]*" inputmode="numeric" style="-webkit-text-security: disc;" autocomplete="off" maxlength="6" name="pin" placeholder="{{ __('PIN') }}"
                                    class="{{ $errors->has('pin') ? ' is-invalid form-control' : 'form-control' }}" onkeypress="checkPin(event);" required/>

                                @if ($errors->has('pin'))
                                    <div class="help-block with-errors">{{$errors->first('pin')}}</div>
                                @endif
                            </div>
                            <div class="form-group">
                                <label class="control-label">confirm</label>
                                <input type="tel" name="pin_confirmation" pattern="[0-9]*" inputmode="numeric" style="-webkit-text-security: disc;" autocomplete="off"
                                    placeholder="{{ __('confirm) }}" class="form-control" maxlength="6" onkeypress="checkPin(event);" required/>
                                @if ($errors->has('pin'))
                                    <span class="invalid-feedback">
                                        <strong>{{ $errors->first('pin_confirmation') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>
                    </div>
                    <div id="step-2" class="">
                        Step Content
                    </div>
                    <div id="step-3" class="">
                        Step Content
                    </div>
                    <div id="step-4" class="">
                        Step Content
                    </div>
                </div>
            </div>
        </form>
    </div>
</section>
@endsection

Здесь Я пытаюсь ввести входной контакт и выдать сообщение об ошибке от laravel.

Сообщения об ошибках не появляются, но форма все еще требуется, пока я не заполню форму правильно.

Есть ли другие способы? или действительно, я могу использовать его только как документацию.

Спасибо

1 Ответ

0 голосов
/ 16 апреля 2020

Наконец-то я нашел решение, мне просто нужно изменить часть моего кода.

надеюсь, это поможет другим при использовании умного мастера. :)

<script>
    $(document).ready(function () {
        $('#smartwizard').smartWizard({
            theme: 'dots',
            transitionEffect: 'fade',
            transitionSpeed: '400',
            lang: { next: 'Selanjutnya', previous: 'Kembali'},
            toolbarSettings: {
                toolbarButtonPosition: 'left',
                showNextButton: true,
                showPreviousButton: true
            }
        })

        $('#myForm').validate({
            rules: {
                name: {
                    required: true
                }
            },
            messages: {
                name: {
                    required: 'Please Enter Your Name'
                }
            }
        });

        $('#smartwizard').on("leaveStep", function(e, anchorObject, stepNumber, stepDirection) {
            var elmForm = $("#form-step-" + stepNumber);
            if (stepDirection === 'forward' && elmForm) {
                // elmForm.validator('validate');
                // var elmErr = elmForm.children('.has-error');
                // if (elmErr && elmErr.length > 0) {
                //     return false;
                // }
                if ($('#myForm').valid()) {
                    return true
                } else {
                    return false
                }
            }
            return true;
        })
    })
</script>

В этом случае я использую jquery проверочные плагины

...