Форма jquery-steps не отправляется

Я использую jquery-steps для отправки формы в первый раз, но не могу получить хранилище форм в своей базе данных.

Форма была построена с использованием синтаксиса laravel blade, но в целях стилизации я добавляю jquery-steps.

Моя форма -

{{ Form::model($contractor, array('url' => 'contractors/edit', 'class' => 'form-horizontal', 'method' => 'PUT')) }}
<div id="wizard">
    <h3>Tell Us About You</h3>
        <fieldset>

                <div class="control-group">
                        {{ Form:: label('name', 'Business Name', array('class' => 'control-label')) }}
                    <div class="controls">
                        {{ Form:: text('name', null, array('class' => 'form-control')) }}
                    </div>
                </div>

                <div class="control-group">
                    {{ Form:: label('tag_line', 'Business Tag Line', array('class' => 'control-label')) }}
                    <div class="controls">
                    {{ Form:: text('tag_line', null, array('class' => 'form-control')) }}
                    </div>
                </div>


                <div class="control-group">
                    {{ Form:: label('first_name', 'Company Contact', array('class' => 'control-label'))}}
                    <div class="controls">
                    {{ Form:: text('first_name', null, array('class' => 'form-control'))}}
                    </div>
                </div>


                <div>
                    {{ Form::label('story', 'Company Bio') }}
                    {{ Form::textarea('story', null, array('class' => 'row-fluid')) }}
                </div>
            </fieldset>


            <h3>Location</h3>
            <fieldset>


                <div class="control-group">
                {{ Form:: label('phone', 'Public Phone', array('class' => 'control-label'))}}
                <div class="controls">
                {{ Form:: text('phone', null, array('class' => 'form-control'))}}
                </div>
                </div>

                <div class="control-group">
                {{ Form:: label('address_1', 'Public Address', array('class' => 'control-label'))}}
                <div class="controls">
                {{ Form:: text('address_1', null, array('class' => 'form-control'))}}
                </div>
                </div>

                <div class="control-group">
                {{ Form:: label('city', 'City', array('class' => 'control-label'))}}
                <div class="controls">
                {{ Form:: text('city', null, array('class' => 'form-control'))}}
                </div>
                </div>

                <div class="control-group">
                {{ Form:: label('state', 'State', array('class' => 'control-label'))}}
                <div class="controls">
                {{ Form:: text('state', null, array('class' => 'form-control'))}}
                </div>
                </div>

            </fieldset>


            <div class="row">
            <div class="span9 text-center">


            {{ Form::close() }}
                </div>
        </div>
    </div>

Скрипт мастера

        <script> $("#wizard").steps({
            headerTag: "h3",
            bodyTag: "fieldset",
              onFinished: function (event, currentIndex)
            {
                var form = $(this);

                // Submit form input
                form.submit();
            }
        });

   </script>

Событие onFinished происходит, но данные формы не сохраняются в моей базе данных. ТИА.


person retrograde    schedule 22.05.2014    source источник
comment
Так была ли вообще вызвана функция сохранения вашего контроллера?   -  person Laurence    schedule 22.05.2014


Ответы (2)


После некоторых проб и ошибок я нашел проблему. Идентификатор #wizard должен быть в теге формы:

{{ Form::model($contractor, array('url' => 'contractors/edit', 'id' => 'wizard', 'class' => 'form-horizontal', 'method' => 'PUT')) }}

Также удалите тег, хранящий id="wizard", и все заработает.

person retrograde    schedule 22.05.2014

я удалил дочерний элемент div, теперь он работает нормально,

<form id="example-form" action="<?php echo getCmsUrl('add/payment'); ?>">
            <h3>Your Information</h3>
            <section >
            <div class="form-group">
                <label for="name">Name *</label>
                <input id="name" name="name" type="text" class="required">
            </div>
            <div class="form-group">
                <label for="email">Email *</label>
                <input id="email" name="email" type="email" class="required">
            </div>
            <div class="form-group">
                <label for="contactNum">Mobile *</label>
                <input id="contactNum" name="contactNum" type="number" class="required">
            </div>
            </section>

            <h3>Add Information</h3>
            <section >
                <div class="form-group">
                    <label for="addDescription">Add Description *</label>
                    <textarea rows="4" cols="30" id="addDescription" name="addDescription" class="required addInput" placeholder="Describe what information you want to show in advertisement. eg. Your Business Name,Address, Contact Num,Phrase to be hilighted."></textarea>
                </div>

                <div class="form-group">
                    <label for="position">Add Position *</label>
                    <select class="addInput" name="position" id="position">
                    <?php if(!empty($addCategory)): ?>
                        <?php foreach($addCategory as $key => $add): ?>
                            <?php
                            $catName = $add->category_name;
                            $catName = (unserialize($catName))?unserialize($catName):NULL;
                            $catName = isset($catName[$this->currentLangID])?$catName[$this->currentLangID]:"";
                            echo "<option value=".$add->category_id.">".$catName."</option>"; 
                            ?>
                        <?php endforeach; ?>
                    <?php endif; ?>
                    </select>
                </div>

                <div class="form-group">
                    <label for="noOfDays">No of Days *</label>
                    <select class="addInput" name="numOfDays" id="numOfDays">
                      <option value="7">1 Week</option>
                      <option value="15">15 Days</option>
                      <option value="30" selected>1 Month</option>
                      <option value="365">1 Year</option>
                    </select>
                </div>
            </section>

            <h3>Finish</h3>
            <section >
            <h2>Are you Sure to Finish?</h2>

            </section>
    </form>

И в js-скрипте

<script type="text/javascript">
        var form = $("#example-form");
        form.validate({
            errorPlacement: function errorPlacement(error, element) { element.before(error); },
            // rules:
            messages:{
                name: {
                    required: "<?php echo tCms('frontend', 'required_field'); ?>",
                },
                email: {
                    required: "<?php echo tCms('frontend', 'required_field'); ?>",
                    email: "Your email address must be in the format of [email protected]"
                },
                contactNum: {
                    required: "<?php echo tCms('frontend', 'required_field'); ?>",
                },
                addDescription: {
                    required: "<?php echo tCms('frontend', 'required_field'); ?>",
                },
                position: {
                    required: "<?php echo tCms('frontend', 'required_field'); ?>",
                },
                numOfDays: {
                    required: "<?php echo tCms('frontend', 'required_field'); ?>",
                }
            }
        });
        form.steps({
            headerTag: "h3",
            bodyTag: "section",
            transitionEffect: "slideLeft",
            onStepChanging: function (event, currentIndex, newIndex)
            {
                if (newIndex < currentIndex) {
                    return true;
                }
                form.validate().settings.ignore = ":disabled,:hidden";
                return form.valid();
            },
            onFinishing: function (event, currentIndex)
            {
                form.validate().settings.ignore = ":disabled";
                return form.valid();
            },
            onFinished: function (event, currentIndex)
            {
                var form = $(this);
                form.submit();
            }
        });
    </script>
person Mahen    schedule 02.07.2017