Обязательное поле проверки не работает codeigniter - PullRequest
0 голосов
/ 30 января 2019

у меня есть следующий код:

  <!-- SELECT SERVICE AND PROVIDER -->
            <div id="wizard-frame-1" class="wizard-frame">
                <div class="frame-container">             
                    <h3 class="frame-title"><?= lang('step_one_title') ?></h3>
            <div class="form-group">
                      <label for="select-service">
                                <strong>Enter Location:*</strong>
                            </label>
                                <input type="text" id="location-name" class="required form-control" maxlength="120" required/>  
                    </div> 
                    <div class="frame-content">
                        <div class="form-group">
                            <label for="select-service">
                                <strong><?= lang('select_service') ?></strong>
                            </label>
                            <select id="select-service" class="col-xs-12 col-sm-4 form-control">
                            </select>
                        </div>
                        <div class="form-group" id="selectprovider">
                            <label for="select-provider">
                                <strong><?= lang('select_provider') ?></strong>
                            </label>

                            <select id="select-provider" class="col-xs-12 col-sm-4 form-control"></select>
                        </div>

                        <div id="service-description" style="display:none;"></div>
                    </div>
                </div>

                <div class="command-buttons">
                    <button type="button" id="button-next-1" class="btn button-next btn-primary"
                            data-step_index="1">
                        <?= lang('next') ?>
                        <span class="glyphicon glyphicon-forward"></span>
                    </button>
                </div>
            </div>

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

Ответы [ 4 ]

0 голосов
/ 30 января 2019

Атрибут required в HTML проверяется на стороне клиента, а не на стороне сервера.Он будет работать только в том случае, если ваша кнопка имеет атрибут type="submit" и браузер поддерживает его (большинство современных браузеров поддерживают это)

Поскольку вы специально упоминаете Codeigniter, я предполагаю, что проблема заключается не только в том, чтоформа отправляется, но тот факт, что ваш контроллер обрабатывает ввод формы.Для обеспечения требуемой проверки (что является хорошей практикой: вы всегда должны применять проверки как на стороне клиента, так и на стороне сервера), вам нужно использовать помощник по форме для CI и определить соответствующие form_validation правила, например:

$this->form_validation->set_rules('post_field', 'description', 'required');

и затем запустите процедуру проверки формы, выполнив следующее:

if ($this->form_validation->run() == false)
{
    // here you'd do something if the validation fails, like redirecting back to the form, show an error message or whatever
}

else
{
    // here you'd do something if the validation passes like actually processing the form input
}
0 голосов
/ 30 января 2019

Обязательный атрибут работает только с полями ввода, которые находятся внутри формы.

Если вы хотите проверить его без формы, вы можете сделать это с помощью JavaScript следующим образом:

document.getElementById('your_input_id').validity.valid

https://stackoverflow.com/a/7741277/10429036

0 голосов
/ 30 января 2019

Вам нужно добавить тег формы до того, как начнется заданный код, а затем закрыть тег формы в конце заданного кода.

0 голосов
/ 30 января 2019

Вы ошиблись, чтобы отправить кнопку.Поместите тип кнопки submit вместо кнопки

<button type="submit" id="button-next-1" class="btn button-next btn-primary" data-step_index="1">
    <?= lang('next') ?>
    <span class="glyphicon glyphicon-forward"></span>
</button>

Примечание: Если вы не хотите submit на этом шаге, тогда вы должны подтвердить свое поле с помощью javascript или послезавершить все шаги по php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...